Monday, April 30, 2018

ThinkPad T480s - Elantech v4 clickpad configuration

Hi,

I've got a ThinkPad T480s that comes with an Elantech v4 Clickpad + Trackpoint (firmware version 0x7f3001).

Out of the box, this firmware version is unsupported and cannot be configured, but it does attach as a basic PS/2 mouse input. Unfortunately for me, this means "tap-to-click" is permanently enabled.

I'm fine with touchpads, but I consider "tap-to-click" to be an abomination of a feature that should have been named "tap-to-destroy-everything-by-mistake". I was willing to do whatever was necessary to disable it.

I applied the following patch to enable this firmware version:

Index: src/sys/dev/pckbc/pms.c
===================================================================
RCS file: /cvs/src/sys/dev/pckbc/pms.c,v
retrieving revision 1.86
diff -u -p -u -r1.86 pms.c
--- src/sys/dev/pckbc/pms.c 29 Apr 2018 08:50:04 -0000 1.86
+++ src/sys/dev/pckbc/pms.c 30 Apr 2018 19:43:12 -0000
@@ -1939,7 +1939,8 @@ elantech_get_hwinfo_v4(struct pms_softc
return (-1);

if (((fw_version & 0x0f0000) >> 16) != 6 &&
- (fw_version & 0x0f0000) >> 16 != 8)
+ ((fw_version & 0x0f0000) >> 16) != 8 &&
+ ((fw_version & 0x0f0000) >> 16) != 15)
return (-1);

elantech->fw_version = fw_version;


The clickpad is now configurable and appears to work, so I can use the laptop without "tap-to-annoy" happening every 5 seconds. However, this patch breaks the trackpoint because there is no support implemented for it yet.

Whenever the trackpoint is touched, it spews out the errors "unknown packet" and "not in sync yet, discard input". The most common unknown packet value is 0x00. After a bit of research, I found that Elantech v4 trackpoint packets are supposed to identify themselves with a value of 0x06. I have yet to determine why the trackpoint packets have the wrong value. For now, I've just disabled the trackpoint in UEFI settings to eliminate the error messages.

No comments:

Post a Comment