Fix for new Touchpad using elantech driver (linux)

The new kernel versions already include this patch! So your system should work fine with last kernel versions. 🙂


I’ve recently bought  a ASUS s301l laptop. This laptop seems to have a new version of touchpad that elantech module cannot detect (kernel version 3.15.4). Because of that, touchpad is detected like an PS/2 and it lacks most of the funcionlities (two fingers gestures, etc.). The error that psmouse driver is giving is: psmouse:elantech_detect: psmouse serio4: elantech: Elantech version query result 0x46, 0x1f, 0x14. psmouse:elantech_detect: psmouse serio4: elantech: Probably not a real Elantech touchpad. Aborting. This detection is performed in elantech_is_signature_valid function. This function compares one of the registers read from the touchpad controller to a set of numbers . If the value of the register matches one of the numbers, the detection fails. (I don’t know the reason of all of this). My touchpad controller returns one of the forbidden values (0x14) so I’ve tried a quick hack: removing the  offending value from the list in that function. After compiling and loading the module, the touchpad is recognized (good!) and it is working (awesome!). If you are in the same problem with your laptop, this is the line you may change in elantech.c module: // static const unsigned char rates[] = { 200, 100, 80, 60, 40, 20, 10 }; static const unsigned char rates[] = { 200, 100, 80, 60, 40, 21, 10 };

Posted in General | Tagged , , , , , | 10 Comments