Created attachment 292685 [details]
My touchpad doesn't work on boot.
[ 2.760685] i2c_hid i2c-ELAN1201:00: HID over i2c has not been provided an Int IRQ
[ 2.760822] i2c_hid: probe of i2c-ELAN1201:00 failed with error -22
when I run "sudo modprobe i2c-hid" my touchpad works again.
This kernel configuration should fix it.
I don't know how it translates to modules though.
I think it's the order in which all kernel modules are loaded. There where times that it just worked.
softdep elan_i2c pre: pinctrl_amd
softdep hid_elan pre: pinctrl_amd
bad news, it only works on some boots. I can't explain it.
The same problem exists in XiaoXin pro 13 API.
Linux version 5.8.13-300.fc33.x86_64 (email@example.com) (gcc (GCC) 10.2.1 20200826 (Red Hat 10.2.1-3), GNU ld version 2.35-10.fc33) #1 SMP Thu Oct 1 20:49:47 UTC 2020
$ dmesg -H
[ +0.058027] i2c_hid i2c-MSFT0001:00: HID over i2c has not been provided an Int IRQ
[ +0.000039] i2c_hid: probe of i2c-MSFT0001:00 failed with error -22
1, Power on, the touchpad cannot be recognized.
2, Restart, the touchpad can be recognized.
Same issue with openSUSE Tumbleweed 20201009 Linux 5.8.14-1 on Tongfang PF4NU1F
When it works, dmesg shows
[ 3.144328] i2c_hid i2c-UNIW0001:00: supply vdd not found, using dummy regulator
[ 3.144340] i2c_hid i2c-UNIW0001:00: supply vddl not found, using dummy regulator
[ 3.305015] input: UNIW0001:00 093A:0255 Mouse as /devices/platform/AMDI0010:02/i2c-0/i2c-
[ 3.305141] input: UNIW0001:00 093A:0255 Touchpad as /devices/platform/AMDI0010:02/i2c-0/i2c-UNIW0001:00/0018:093A:0255.0001/input/input3
[ 3.305262] hid-generic 0018:093A:0255.0001: input,hidraw0: I2C HID v1.00 Mouse [UNIW0001:00 093A:0255] on i2c-UNIW0001:00
When it doesn't, dmesg shows
[ 2.984796] i2c_hid i2c-UNIW0001:00: HID over i2c has not been provided an Int IRQ
[ 2.984864] i2c_hid: probe of i2c-UNIW0001:00 failed with error -22
I hear another workaround is by changing the pinctrl-amd to built-in instead of to load it as a module.
For more info see: https://bugzilla.suse.com/show_bug.cgi?id=1177049#c4
(In reply to Jeroen Jeurissen from comment #8)
> For more info see: https://bugzilla.suse.com/show_bug.cgi?id=1177049#c4
Thank you very much Jeroen. The solution works for me.
With different hardware on my laptop based on dmesg output, I created /etc/modules-load.d/99_touchpad.conf
softdep hid_i2c pre: pinctrl_amd
softdep hid_generic pre: pinctrl_amd
Fixed in more recent kernel version.