]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155
authorZhang Heng <zhangheng@kylinos.cn>
Fri, 12 Sep 2025 12:38:18 +0000 (20:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Dec 2025 10:43:19 +0000 (11:43 +0100)
commit beab067dbcff642243291fd528355d64c41dc3b2 upstream.

Based on available evidence, the USB ID 4c4a:4155 used by multiple
devices has been attributed to Jieli. The commit 1a8953f4f774
("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") affected touchscreen
functionality. Added checks for manufacturer and serial number to
maintain microphone compatibility, enabling both devices to function
properly.

[jkosina@suse.com: edit shortlog]
Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
Cc: stable@vger.kernel.org
Tested-by: staffan.melin@oscillator.se
Reviewed-by: Terry Junge <linuxhid@cosmicgizmosystems.com>
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hid/hid-ids.h
drivers/hid/hid-quirks.c

index 4b85d9088a61b7c52f3767d370a6579c58eb3011..a85027fbf726a5926131bc6e2c0a72e1dcc5d639 100644 (file)
 #define USB_VENDOR_ID_SIGNOTEC                 0x2133
 #define USB_DEVICE_ID_SIGNOTEC_VIEWSONIC_PD1011        0x0018
 
-#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY              0x4c4a
-#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155         0x4155
+#define USB_VENDOR_ID_JIELI_SDK_DEFAULT                0x4c4a
+#define USB_DEVICE_ID_JIELI_SDK_4155           0x4155
 
 #endif
index 75480ec3c15a2d7624ebac1aad076721e54c15ec..fa946666969b8d74f6b7620221b8fc719e693d87 100644 (file)
@@ -900,7 +900,6 @@ static const struct hid_device_id hid_ignore_list[] = {
 #endif
        { HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) },
        { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473) },
-       { HID_USB_DEVICE(USB_VENDOR_ID_SMARTLINKTECHNOLOGY, USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155) },
        { }
 };
 
@@ -1057,6 +1056,18 @@ bool hid_ignore(struct hid_device *hdev)
                                             strlen(elan_acpi_id[i].id)))
                                        return true;
                break;
+       case USB_VENDOR_ID_JIELI_SDK_DEFAULT:
+               /*
+                * Multiple USB devices with identical IDs (mic & touchscreen).
+                * The touch screen requires hid core processing, but the
+                * microphone does not. They can be distinguished by manufacturer
+                * and serial number.
+                */
+               if (hdev->product == USB_DEVICE_ID_JIELI_SDK_4155 &&
+                   strncmp(hdev->name, "SmartlinkTechnology", 19) == 0 &&
+                   strncmp(hdev->uniq, "20201111000001", 14) == 0)
+                       return true;
+               break;
        }
 
        if (hdev->type == HID_TYPE_USBMOUSE &&