Comment 415 for bug 1887190

Revision history for this message
James Hennig (kissykitty) wrote :

Hey there @Coiby Xu thank you,

I think I understand what you mean, basically use your Github for this, standalone_i2c_hid, but copy the i2c drivers from the cloned Manjaro kernel 5.9.16-1 ../src/linux-5.9/drivers/hid/i2c-hid/ directory into the ../i2c-hid_standalone/ directory in your project (replacing all 3 source files without the Makefile), then compile it and replace the according module in my running system.

Just as a reference, directly dropping in /lib/modules/5.9.16-1-MANJARO/kernel/drivers/hid/i2c-hid/i2c-hid.ko.xz into the respective 5.11.6-1-MANJARO ../i2c-hid/ directory, then running "mkinitcpio -P linux511" (to use the new module.. if this is how to do it?) does not work, in case anyone was wondering. Touchpad immediately froze on bootup.

******************************

I was able to compile the Manjaro 5.9.16-1 source files into a module (on 5.11.6-1 using linux511-headers) using your provided Makefile and followed the instructions to copy the compiled module into the 5.11.6-1-MANJARO ../i2c-hid/ directory. Also added the GRUB options and ran "sudo update-grub". It functioned, but did not fix the issue. Froze after 2 reboots.

I also tried compiling the Github project as it is, using the provided source files (on 5.11.6-1 using linux511-headers) and it spit out:
ERROR: modpost "irq_to_desc" (in ../i2c-hid-standalone/i2c-hid.ko) undefined !
../i2c-hid-standalone/Module.symvers Error 1

Also I wanted to point out in your README the instruction to append "i2c_hid.polling_mode=1" to GRUB_CMDLINE_LINUX. Shouldn't this be appended to GRUB_CMDLINE_LINUX_DEFAULT? I don't really know, I've just never seen the non-_DEFAULT line used before. In either case, produces same results.

Thanks for all your help, it was worth a shot. Maybe your code needs to be updated for recent kernels?

I am still trying to play with the idea of focusing on the pinctrl-amd.c driver, but really need some help with what to do with that driver. I am not sure the culprit is the i2c_hid driver, but rather this driver. Maybe I'm wrong, but it certainly is the next place to look...

Fun things to try!