[PATCH] Input: synaptics - limit the T440p InterTouch quirk to LEN0036
From: Daniel Salmun <hidden>
Date: 2026-09-25 23:01:17
Also in:
lkml, stable
Subsystem:
input (keyboard, mouse, joystick, touchscreen) drivers, the rest · Maintainers:
Dmitry Torokhov, Linus Torvalds
Commit 26eb3d92c7a4 ("Input: synaptics - disable InterTouch on ThinkPad
T440p (board id 2722)") disables InterTouch for every touchpad with
board id 2722. The ThinkPad L440 (LEN2004) uses the same board id:
psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd001a3/0x940300/0x127c00/0x0, board id: 2722, fw id: 1484859
so it is switched to PS/2 as well, although it does not have the boot
problem that commit works around. On the L440 the SMBus adapter is
registered after psmouse probes, so the first attempt returns -EAGAIN
and the adapter notifier completes the switch about two seconds later.
It did so on all 7 boots in my logs:
psmouse serio1: synaptics: SMbus companion is not ready yet
psmouse serio1: synaptics: Trying to set up SMBus access
rmi4_smbus 0-002c: registering SMbus-connected sensor
Match PNP ID LEN0036 as well, as the earlier versions of that patch
did, so that only the T440p is affected.
Disabling InterTouch on the L440 was proposed before and not merged
[1]. In PS/2 mode this touchpad reports two tracked contacts and no
contact size, orientation or palm tool type, which it does over SMBus.
[1] https://lore.kernel.org/linux-input/20230414092353.v2.1.Ieb687047a5b75c7b7ee5dd258207ef5ca9a3b728@changeid/ (local)
Fixes: 26eb3d92c7a4 ("Input: synaptics - disable InterTouch on ThinkPad T440p (board id 2722)")
Cc: stable@vger.kernel.org
Assisted-by: LLM
Signed-off-by: Daniel Salmun <redacted>
---
Raphaël, your earlier versions matched LEN0036 as well. Was dropping
it in the V2 RESEND intentional, e.g. because some T440p units report
a different PNP ID?
26eb3d92c7a4 is queued for 6.18.54 and 7.2.8, so without this the L440
drops to PS/2 on those stable kernels too.
Build-tested on top of for-linus. The L440 logs above are from 6.18.48,
which does not have 26eb3d92c7a4.
drivers/input/mouse/synaptics.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index a8ce89d41..6bc14c07a 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c@@ -1840,7 +1840,9 @@ static int synaptics_setup_intertouch(struct psmouse *psmouse, } /* Disable intertouch on known-broken board revisions */ - if (info->board_id == 2722) { + if (psmouse_matches_pnp_id(psmouse, + (const char * const []){"LEN0036", NULL}) && + info->board_id == 2722) { psmouse_info(psmouse, "Disabling intertouch for board id %u\n", info->board_id);
base-commit: 309731e95917125bbd13626a7a5600490a5bf44f -- 2.55.0