Comment 29 for bug 1900254

Revision history for this message
In , glogow (glogow-linux-kernel-bugs) wrote :

(In reply to Osmo from comment #20)
> Doesn't seem to work for me. Issue is earlier.
...
> I've no Elan touchpad listed in.
> My laptop is Lenonvo Ideapad 14IIL05.

As far as I have read various Ideapad 14/15 related threads, the AMD (like my 15ARE05) and Intel (like your 14IIL05) have different touchpads.

My decoded DSDT contains two "ELAN" ids: ELAN901C and a ELAN0001. I didn't test, if adding that ELAN901C id to the elan_i2c driver would result in some "better" supported device, then the generic i2c_hid driver, as I don't see any missing functionality. And the i2c_hid claims the "ELAN0001" device, if the elants_i2c is build as a module. AFAIK it's common to share a common DSDT for a series of devices, and the correct parts are just activated by some smaller config ACPI data, or the like.

There is clearly something missing, because this driver rebinding is even needed in 5.7, as the elan touchscreen driver still claims the device, even if it doesn't have a touchscreen. Eventually, even the DSDT is buggy in some way, but then the driver still needs to work around it.

My Xorg.log has some EE entries for invalid values reported by the elants_i2c driver, so it should be possible for the elants_i2c to "bail out" from claiming the device in the detection, based on these values, and the later hid_i2c driver would "just work" - my assumption.

(EE) event4 - Elan Touchscreen: kernel bug: device has min == max on ABS_X
(II) event4 - Elan Touchscreen: was rejected
(II) event4 - not using input device '/dev/input/event4'.
(EE) libinput: Elan Touchscreen: Failed to create a device for /dev/input/event4
(EE) PreInit returned 2 for "Elan Touchscreen"