Hi Christian, On Thu, 2016-04-07 at 15:37 +0200, Christian Ruppert wrote: > Dear Lucas, > > Sorry for the late reply but I had to put our test environment back > together to check this patch. I'll keep it around for a while in case > you have further iterations to test. np, I'll try to iterate faster on this patch now, too. > On Linux-4.6.0-rc2 the behaviour is still the same: The kernel locks up > in an irq loop at dwi2c driver probe time. If I don't apply the patch > everything works fine and the system boots and talks normally on the i2c > bus. :( I really hoped this would work in your case. > One solution might be to add a device-tree (and acpi) flag to tell the > driver that it does not need to expect any nastily behaved devices on > the bus. If this flag is given, the driver could use the faster > disable-interrupt strategy. Without the flag we need to fall back to the > conservative disable-i2c-controller strategy. I'd like to try some other approaches before that. What if we start with it disabled and enable at first use? After that we keep the approach of just disabling the interrupts. I can prep a patch for that. > I think such a flag should be OK because I2C buses are generally quite > static and the list of devices should be known at system integration > time. In the rare cases where this is not true, users could still go > with the conservative approach. I know that the "cleaner" method would > be to rather mark nasty devices, either in device tree or in the driver, > but I guess the required changes in the I2C framework might be overkill > for this dwi2c specific problem. agreed thanks Lucas De Marchi��.n��������+%������w��{.n�����{��-��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥