Created attachment 187711 [details]
i2c designware driver causes to hang during booting, fail rate 80%. And when it boots, it can't poweroff or reboot normally.
This happens with all versions above 3.17.0. It is because from 3.17.0, Linux kernel adds BSW bindings for i2c-designware driver (commit 0409516 i2c: designware: add new bindings), so x360 will load i2c-designware-* modules and it hangs when boot. And when it hangs, there's no any code trace. Caps lock led and SysRq both can not work.
When it can boot and doing poweroff or reboot, after stoping service it turns to black screen, but can not turn power off, and stays in the states. This also happens if we blacklist i2c-designware-* modules when boot and modprobe them back.
After blacklist i2c-designware-* modules, it can also boot, reboot, and poweroff normally.
: Includes i2c-designware-core and i2c-designware-platform. X360 i2c uses ACPI interface rather then pci, so i2c-designware-pci is not loaded.
Can you attach full dmesg to this bug?
Also do you have dw_dmac (DesignWare DMA) driver loaded? If yes, can you try first disable following from your kernel .config:
We have outstanding bug which hangs the system in certain occasions and it is actually related to DMA not I2C.
Alternatively you can blacklist dw_dmac if you don't want to recompile the kernel.
v4.5-rc1 is out. Please, re-check on it.
No info for a long time. Close as duplicate of bug #101271 since the symptoms are very similar.
Please, feel free to re-open the bug in case it occurs with an additional info provided as Mika asked for.
*** This bug has been marked as a duplicate of bug 101271 ***