From 9fb4fd3873e5693647e517c7960383c4523cd093 Mon Sep 17 00:00:00 2001 From: Zhang Heng Date: Fri, 12 Sep 2025 20:38:18 +0800 Subject: [PATCH] HID: quirks: Add device descriptor for 4c4a:4155 Two USB devices use the same ID. To avoid affecting functionality, device descriptors are added to distinguish between them Signed-off-by: Zhang Heng --- drivers/hid/hid-quirks.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index ffd034566e2e..d39a8e53ea36 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -913,6 +913,17 @@ 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_ignore_mic - Microphone devices do not require HID core processing + * + * Now there are two USB devices using the same ID, one is the microphone and the other + * is the touch screen. The touch screen requires hid core processing, but the + * microphone does not. The two have different bcdIDs, which will be used to + * distinguish them in the future + */ +static const struct hid_device_id hid_ignore_mic[] = { { HID_USB_DEVICE(USB_VENDOR_ID_SMARTLINKTECHNOLOGY, USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155) }, { } }; @@ -1068,6 +1079,9 @@ bool hid_ignore(struct hid_device *hdev) hdev->quirks & HID_QUIRK_IGNORE_MOUSE) return true; + if(hid_match_id(hdev, hid_ignore_mic) && (hdev->version > 1.1)) + return true; + return !!hid_match_id(hdev, hid_ignore_list); } EXPORT_SYMBOL_GPL(hid_ignore); @@ -1266,7 +1280,8 @@ static unsigned long hid_gets_squirk(const struct hid_device *hdev) const struct hid_device_id *bl_entry; unsigned long quirks = hdev->initial_quirks; - if (hid_match_id(hdev, hid_ignore_list)) + if (hid_match_id(hdev, hid_ignore_list) || + (hid_match_id(hdev, hid_ignore_mic) && (hdev->version > 1.1))) quirks |= HID_QUIRK_IGNORE; if (hid_match_id(hdev, hid_mouse_ignore_list)) -- 2.47.1