lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CALy8NDYVkOnRbzrO37BhX0cf4MHDwxv1LbV=JW3QOCg1+-kOqQ@mail.gmail.com>
Date: Sun, 5 Oct 2025 12:45:19 -0700
From: Matt Roberts <robertsmattb@...il.com>
To: linux-input@...r.kernel.org
Cc: jikos@...nel.org, bentiss@...nel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] HID: multitouch: add IGNORE_DUPLICATES quirk for ELAN1206 (04f3:30f1)

From: Matthew Roberts <robertsmattb@...il.com>
Date: Sun, 5 Oct 2025 11:34:17 -0700
Subject: [PATCH] HID: multitouch: add IGNORE_DUPLICATES quirk for ELAN1206
 (04f3:30f1)

Some ELAN1206 I2C touchpads intermittently report duplicate tracking IDs.
On recent kernels this can make libinput interpret a one-finger slide as
repeated hold/click events instead of continuous POINTER_MOTION.

Add MT_QUIRK_IGNORE_DUPLICATES for 04f3:30f1 so the driver filters
repeated contacts and reports motion correctly. This restores behavior
comparable to 6.1 LTS kernels where motion and clicks were normal.

Reproducer notes: with hid_multitouch enabled, sliding a single finger
produces repeated GESTURE_HOLD_BEGIN/END in libinput and logs the
"double tracking ID ... in slot 0" error. Attached are short traces:
- elan1206-bug.yaml (libinput record)
- elan1206-bug.evemu (evdev stream)
- elan1206-bug.hidraw0 (HID raw capture)
- elan1206-bug.libinput (debug stream)
System: Fedora 42 (kernel 6.16.9-200.fc42.x86_64,
libinput 1.29.1,
device ELAN1206:00 04F3:30F1)

Signed-off-by: Matthew Roberts <robertsmattb@...il.com>
---
 drivers/hid/hid-multitouch.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index 2879e65cf..ed318c80e 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -2150,6 +2150,10 @@ static const struct hid_device_id mt_devices[] = {
                HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
                        USB_VENDOR_ID_ELAN, 0x32ae) },

+        /* ELAN1206 touchpad: duplicate tracking IDs cause hold/click storms */
+        { .driver_data = MT_QUIRK_IGNORE_DUPLICATES,
+          HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH, 0x04f3, 0x30f1) },
+
        /* Elitegroup panel */
        { .driver_data = MT_CLS_SERIAL,
                MT_USB_DEVICE(USB_VENDOR_ID_ELITEGROUP,
-- 
2.51.0

Download attachment "elan1206-bug.yaml" of type "application/yaml" (34795 bytes)

Download attachment "elan1206-bug.evemu" of type "application/octet-stream" (24857 bytes)

Download attachment "elan1206-bug.hidraw0" of type "application/octet-stream" (2624 bytes)

Download attachment "elan1206-bug.libinput" of type "application/octet-stream" (3638 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ