Skip to content

Commit 9a60d80

Browse files
Zhang HengUlrich Hecht
authored andcommitted
HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155
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> Signed-off-by: Ulrich Hecht <uli@kernel.org>
1 parent d9f639c commit 9a60d80

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

drivers/hid/hid-ids.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,7 +1292,7 @@
12921292
#define USB_VENDOR_ID_UGTIZER 0x2179
12931293
#define USB_DEVICE_ID_UGTIZER_TABLET_GP0610 0x0053
12941294

1295-
#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY 0x4c4a
1296-
#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155 0x4155
1295+
#define USB_VENDOR_ID_JIELI_SDK_DEFAULT 0x4c4a
1296+
#define USB_DEVICE_ID_JIELI_SDK_4155 0x4155
12971297

12981298
#endif

drivers/hid/hid-quirks.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,6 @@ static const struct hid_device_id hid_ignore_list[] = {
911911
#endif
912912
{ HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) },
913913
{ HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473) },
914-
{ HID_USB_DEVICE(USB_VENDOR_ID_SMARTLINKTECHNOLOGY, USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155) },
915914
{ }
916915
};
917916

@@ -1061,6 +1060,18 @@ bool hid_ignore(struct hid_device *hdev)
10611060
strncmp(hdev->name, "QTEC0001", 8) != 0)
10621061
return true;
10631062
break;
1063+
case USB_VENDOR_ID_JIELI_SDK_DEFAULT:
1064+
/*
1065+
* Multiple USB devices with identical IDs (mic & touchscreen).
1066+
* The touch screen requires hid core processing, but the
1067+
* microphone does not. They can be distinguished by manufacturer
1068+
* and serial number.
1069+
*/
1070+
if (hdev->product == USB_DEVICE_ID_JIELI_SDK_4155 &&
1071+
strncmp(hdev->name, "SmartlinkTechnology", 19) == 0 &&
1072+
strncmp(hdev->uniq, "20201111000001", 14) == 0)
1073+
return true;
1074+
break;
10641075
}
10651076

10661077
if (hdev->type == HID_TYPE_USBMOUSE &&

0 commit comments

Comments
 (0)