Bug#1114557: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
Apply this new patch and test the kernel again. I don't have the
original mic device in my hands, which means I have to wait for a
response for testing now.
You can test it first, and the other mic device also needs to be retested
在 2025/9/13 21:11, Staffan Melin 写道:
Ah, thanks, I get it now :)
So I got 6.16.7, and the patch applied without problems.
But no luck, the same results as before: touchscreen not working,
xinput --list not showing the Jieli touchscreen. dmesg shows the same
as before, too.
Best regards,
Staffan
On 2025-09-13 10:55, Salvatore Bonaccorso wrote:
Hi Staffan,
chiming in hopefully it is of help.
Now really with the patch ...
On Fri, Sep 12, 2025 at 09:57:04PM +0200, Staffan Melin wrote:
Thank you,
I tried to apply this patch to 6.12.39, the first problematic
kernel, as
well as 6.12.41, the first bad I tried, and on both I got an error
message:
Applying: HID: quirks: Add device descriptor for 4c4a:4155
error: patch failed: drivers/hid/hid-quirks.c:1068
error: drivers/hid/hid-quirks.c: patch does not apply
Patch failed at 0001 HID: quirks: Add device descriptor for 4c4a:4155
To which kernel version should I apply the patch?
As the deveopment goes from mainline then down to stable series, the
fix needs to be developed first for mainline. So the patch is targeted
there.
But please find attached an updated patch which hopefully should work
which resolved the context changes on top of 6.12.47.
But ideally you can provide a Tested-by on zhangheng's mainline patch
to get things rolling as needed.
Regards,
Salvatore
From f3c1312ec4ad434801981dc97209eff512b2c195 Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
Date: Fri, 12 Sep 2025 20:38:18 +0800
Subject: [PATCH v2] 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 <zhangheng@kylinos.cn>
---
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
Reply to: