Bugzilla – Bug 1176971
Touchpad ELAN 0634 not recognized
Last modified: 2022-01-14 13:35:32 UTC
Touchpad ELAN 0634 not recognized on Lenovo ThinkBook14 IIL # acpidump |grep -C1 ELAN 2A1D0: 44 52 00 08 49 44 41 44 00 08 48 49 44 32 00 08 DR..IDAD..HID2.. 2A1E0: 5F 48 49 44 0D 45 4C 41 4E 30 36 33 34 00 08 5F _HID.ELAN0634.._ 2A1F0: 43 49 44 0D 50 4E 50 30 43 35 30 00 08 5F 55 49 CID.PNP0C50.._UI Problem seems to be common, multiple Ubuntu (and others) findings if googling. Seems to be fixed already through a kernel patch, but seems not to be in the current kernel 5.8.10 in Tumbleweed. Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1861610 possible Fix: https://lore.kernel.org/linux-input/000201d5a8bd$9fead3f0$dfc07bd0$@emc.com.tw/
For the record, kernel tested: # uname -a Linux xxxxxxxxxxx 5.8.10-1-default #1 SMP Mon Sep 21 11:00:19 UTC 2020 (af3e800) x86_64 x86_64 x86_64 GNU/Linux I adapted now the workaround provided in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1861610/comments/66 (just built a fixed dsdt.aml and did a acpi /boot/dsdt.aml in grub.cfg before kernel load (had to disable secure boot in BIOS for that workaround). I can confirm, that the touchpad works aftwerwards. Nevertheless it would be nice to have the available kernel fix included in the standard kernel for not having to fix with the dsdt to get a working touchpad (and yes, I'm aware of the fact, that this is a BIOS-bug which originally should be fixed by Lenovo...) The steps I took: # acpidump -b # iasl -d dsdt.dat # vi dsdt.dsl - Search the HID of the touch pad: ELAN0634 - Search the next _STA method declaration and comment out these four lines: Method (_STA, 0, NotSerialized) // _STA: Status { //If ((TPVD == 0x45)) //{ Return (0x0F) //} //Return (Zero) } - Increment the version number. It’s the last parameter of the DefinitionBlock (line 21 for me): DefinitionBlock ("", "DSDT", 2, "LENOVO", "ICL ", 0x20170002) # iasl -sa dsdt.dsl # cp dsdt.aml /boot reboot, press e in grub menu on your linux boot entry and enter the following line before kernel loading: acpi /boot/dsdt.aml (Secure boot has to be disabled in BIOS!) If it works, add it permanently to the grub.cfg
The suggested kernel fix patch has been already included in 5.8 since rc6. Could you confirm whether it works or not?
Ok, so this patch seems not to be enough. Initially I installed 5.8.7 an upgraded to 5.8.10. Both ignored the touchpad. I had to implement the workaround to get it recognized.
There is a related bug at redhat, where Hans de Goede seem to having submitted a working patch upstream: https://bugzilla.redhat.com/show_bug.cgi?id=1842039
OK, thanks for the pointer. I'm building a test kernel with the suggested fix patch now. It's being built on OBS home:tiwai:bsc1176971 repo. The test package will be available later at http://download.opensuse.org/repositories/home:/tiwai:/bsc1176971/standard/ Please give it a try later. Once after confirming it works, I'll queue the fix.
Sorry for the delay, didn't have access to the hardware. I can confirm, that your fix works. Touchpad is now working without acpi meddling. THX!
Should be fixed. TW kernel contains the mentioned patch for quite a while. Upstream commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()"). Closing...