]> 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>
Sat, 6 Dec 2025 21:12:37 +0000 (06:12 +0900)
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 307f921a9806892fe7f14097b9bab03ceb787d4b..a91208c83e46b38144f8f9101a295024c68c96fc 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 b42aa9e22fcf0b43af49afe8b58d9ba8b34b31d4..960392125ceac3439d44aaa797eb1cb466f9499c 100644 (file)
@@ -888,7 +888,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) },
        { }
 };
 
@@ -1045,6 +1044,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 &&