Elantech - Touchpad not working after upgrading to 18.10 from 18.04 (ThinkPad L480)

When updating from 18.04 to 18.10 on a ThinkPad L480 the Elantech touchpad stopped working. This means it is not recognized at all. This problem occured after the first boot in 18.10

dmesg | grep -i elantech shows the following errors:

[    3.409043] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001)
[    3.427372] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x10.
[    3.447275] psmouse serio1: elantech: Elan sample query result 00, 23, c8
[    3.464905] psmouse serio1: elantech: Trying to set up SMBus access
[    5.576149] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[    5.586505] elan_i2c 0-0015: failed to get resolution: -71
[    5.586527] elan_i2c: probe of 0-0015 failed with error -71

uname:

$ uname -a
Linux test 4.18.0-10-generic #11-Ubuntu SMP Thu Oct 11 15:13:55 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

I found the following thread which solves the problem temporarly (and reports the same problem in Arch): https://bugs.archlinux.org/task/59714

Running the following command enables it again for the current session:

sudo sh -c 'echo -n "elantech"> /sys/bus/serio/devices/serio1/protocol'

dmesg afterwards:

[  569.522490] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001)
[  569.544584] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x10.
[  569.565939] psmouse serio1: elantech: Elan sample query result 00, 23, c8

Before running the fix:

$ cat /sys/bus/serio/devices/serio1/protocol
ETSMBus

and after:

$ cat /sys/bus/serio/devices/serio1/protocol
ETPS/2

After reboot the command has to be run again, of course.

Is this a bug in the 4.18 kernel?


According to https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1803600 adding the kernel parameter psmouse.elantech_smbus=0 to the boot options fixes the problem across reboots.

And yes, this a bug with the linux kernel.