Skip to content

i2c-piix4 driver on Linux does not see AMD X370's 0x0B20 bus, performance is very slow

I pushed a linux-test branch with a version of the i2c_smbus_interface class that uses /dev/i2c-x on Linux via ioctl to implement all the i2c functions I've implemented on Windows. I haven't implemented detection yet, but this should be straightforward unlike it was on Windows.

I wrote a simple bit of code that sets all my Trident Z RGB modules to flashing mode. Unfortunately, it was very slow. You could see each module switching modes in sequence, suggesting that there is a large delay during/between each SMBus write that isn't there in my Windows implementation. This makes sense, as when I ported the PIIX4 driver to Windows, I greatly reduced many timeouts to make it run my visualizer smoothly. Thing is, the kernel driver could be running smoothly too, but it isn't. Also, the second bus at 0x0B20 does not get detected on Linux.

I've opened a kernel bug related to the issue. I could try submitting a kernel patch myself but I am not 100% familiar with the driver outside of its use on AMD and don't want to break anything.

https://bugzilla.kernel.org/show_bug.cgi?id=202587