Skip to content

Commit beab067

Browse files
Zhang HengJiri Kosina
authored andcommitted
HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155
Based on available evidence, the USB ID 4c4a:4155 used by multiple devices has been attributed to Jieli. The commit 1a8953f ("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: 1a8953f ("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>
1 parent ed80cc4 commit beab067

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
@@ -1543,7 +1543,7 @@
15431543
#define USB_VENDOR_ID_SIGNOTEC 0x2133
15441544
#define USB_DEVICE_ID_SIGNOTEC_VIEWSONIC_PD1011 0x0018
15451545

1546-
#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY 0x4c4a
1547-
#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155 0x4155
1546+
#define USB_VENDOR_ID_JIELI_SDK_DEFAULT 0x4c4a
1547+
#define USB_DEVICE_ID_JIELI_SDK_4155 0x4155
15481548

15491549
#endif

drivers/hid/hid-quirks.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,6 @@ static const struct hid_device_id hid_ignore_list[] = {
915915
#endif
916916
{ HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) },
917917
{ HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473) },
918-
{ HID_USB_DEVICE(USB_VENDOR_ID_SMARTLINKTECHNOLOGY, USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155) },
919918
{ }
920919
};
921920

@@ -1064,6 +1063,18 @@ bool hid_ignore(struct hid_device *hdev)
10641063
strlen(elan_acpi_id[i].id)))
10651064
return true;
10661065
break;
1066+
case USB_VENDOR_ID_JIELI_SDK_DEFAULT:
1067+
/*
1068+
* Multiple USB devices with identical IDs (mic & touchscreen).
1069+
* The touch screen requires hid core processing, but the
1070+
* microphone does not. They can be distinguished by manufacturer
1071+
* and serial number.
1072+
*/
1073+
if (hdev->product == USB_DEVICE_ID_JIELI_SDK_4155 &&
1074+
strncmp(hdev->name, "SmartlinkTechnology", 19) == 0 &&
1075+
strncmp(hdev->uniq, "20201111000001", 14) == 0)
1076+
return true;
1077+
break;
10671078
}
10681079

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

0 commit comments

Comments
 (0)