* [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
@ 2025-09-07 15:10 Salvatore Bonaccorso
2025-09-08 4:10 ` Terry Junge
2025-09-12 12:49 ` zhangheng
0 siblings, 2 replies; 15+ messages in thread
From: Salvatore Bonaccorso @ 2025-09-07 15:10 UTC (permalink / raw)
To: Zhang Heng, Jiri Kosina, Staffan Melin
Cc: Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
Hi Zhang, hi Jiri,
In Debian Staffan Melin reported that after an update containing the
commit 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY"),
the input device with same idVendor and idProduct, the Jieli
Technology USB Composite Device, does not get recognized anymore.
The full Debian report is at: https://bugs.debian.org/1114557
The issue is not specific to the 6.12.y series and confirmed in 6.16.3
as well.
Staffan Melin did bisect the kernels between 6.12.38 (which was still
working) and 6.1.41 (which was not), confirming by bisection that the
offending commit is
1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
#regzbot introduced: 1a8953f4f774
#regzbot monitor: https://bugs.debian.org/1114557
So it looks that the quirk applied is unfortunately affecting
negatively as well Staffan Melin case.
Can you have a look?
Regards,
Salvatore
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-07 15:10 [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device Salvatore Bonaccorso
@ 2025-09-08 4:10 ` Terry Junge
2025-09-08 9:00 ` Staffan Melin
2025-09-12 12:49 ` zhangheng
1 sibling, 1 reply; 15+ messages in thread
From: Terry Junge @ 2025-09-08 4:10 UTC (permalink / raw)
To: Salvatore Bonaccorso, Zhang Heng, Jiri Kosina, Staffan Melin
Cc: Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
On 9/7/25 8:10 AM, Salvatore Bonaccorso wrote:
> Hi Zhang, hi Jiri,
>
> In Debian Staffan Melin reported that after an update containing the
> commit 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY"),
> the input device with same idVendor and idProduct, the Jieli
> Technology USB Composite Device, does not get recognized anymore.
>
> The full Debian report is at: https://bugs.debian.org/1114557
>
The root of the issue here is that two devices have bootlegged the same VID:PID.
0x4c4a is not a valid VID that has been assigned according to the latest list from USBIF (vendor_ids072325_1.pdf) so conflicts like this could surface at any time.
[ 10.188336] usb 3-3: device descriptor read/64, error -71
[ 10.439533] usb 3-3: config 1 interface 0 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 1
[ 10.451534] usb 3-3: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
[ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 10.451543] usb 3-3: Product: USB Composite Device
[ 10.451545] usb 3-3: Manufacturer: Jieli Technology
[ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
Can anyone supply the Jieli descriptors, including the Report Descriptor? It clearly has problems but not bad enough to fail enumeration.
The commit 1a8953f4f774 should be reverted and SMARTLINKTECHNOLOGY should either bootleg a different PID, get a valid VID, or fix their device so a quirk is never required.
Thanks,
Terry
> The issue is not specific to the 6.12.y series and confirmed in 6.16.3
> as well.
>
> Staffan Melin did bisect the kernels between 6.12.38 (which was still
> working) and 6.1.41 (which was not), confirming by bisection that the
> offending commit is
>
> 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>
> #regzbot introduced: 1a8953f4f774
> #regzbot monitor: https://bugs.debian.org/1114557
>
> So it looks that the quirk applied is unfortunately affecting
> negatively as well Staffan Melin case.
>
> Can you have a look?
>
> Regards,
> Salvatore
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-08 4:10 ` Terry Junge
@ 2025-09-08 9:00 ` Staffan Melin
0 siblings, 0 replies; 15+ messages in thread
From: Staffan Melin @ 2025-09-08 9:00 UTC (permalink / raw)
To: Terry Junge
Cc: Salvatore Bonaccorso, Zhang Heng, Jiri Kosina, Benjamin Tissoires,
linux-input, linux-kernel, regressions, stable, 1114557
Hi Terry,
I am the one with the Jieli touchscreen.
On 2025-09-08 06:10, Terry Junge wrote:
>
> The root of the issue here is that two devices have bootlegged the same
> VID:PID.
>
> 0x4c4a is not a valid VID that has been assigned according to the
> latest list from USBIF (vendor_ids072325_1.pdf) so conflicts like this
> could surface at any time.
>
> [ 10.188336] usb 3-3: device descriptor read/64, error -71
> [ 10.439533] usb 3-3: config 1 interface 0 altsetting 0 has 2
> endpoint descriptors, different from the interface descriptor's value:
> 1
> [ 10.451534] usb 3-3: New USB device found, idVendor=4c4a,
> idProduct=4155, bcdDevice= 1.00
> [ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2,
> SerialNumber=3
> [ 10.451543] usb 3-3: Product: USB Composite Device
> [ 10.451545] usb 3-3: Manufacturer: Jieli Technology
> [ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
>
> Can anyone supply the Jieli descriptors, including the Report
> Descriptor? It clearly has problems but not bad enough to fail
> enumeration.
>
> The commit 1a8953f4f774 should be reverted and SMARTLINKTECHNOLOGY
> should either bootleg a different PID, get a valid VID, or fix their
> device so a quirk is never required.
>
> Thanks,
> Terry
In /sys/bus/hid/devices/0003:4C4A:4155.0003 i have the report_descriptor
file:
00000000 05 0d 09 04 a1 01 85 aa 09 22 a1 00 09 42 15 00
|........."...B..|
00000010 25 01 75 01 95 01 81 02 75 03 81 03 09 51 75 04
|%.u.....u....Qu.|
00000020 25 0a 81 02 75 08 95 01 81 03 05 01 75 10 55 00
|%...u.......u.U.|
00000030 65 00 09 30 35 00 26 00 10 46 00 10 81 02 09 31
|e..05.&..F.....1|
00000040 26 00 10 46 00 10 81 02 c0 a1 00 05 0d 09 42 15
|&..F..........B.|
00000050 00 25 01 75 01 95 01 81 02 75 03 81 03 09 51 75
|.%.u.....u....Qu|
00000060 04 25 0a 81 02 75 08 95 01 81 03 05 01 75 10 55
|.%...u.......u.U|
00000070 00 65 00 09 30 35 00 26 00 10 46 00 10 81 02 09
|.e..05.&..F.....|
00000080 31 26 00 10 46 00 10 81 02 c0 a1 00 05 0d 09 42
|1&..F..........B|
00000090 15 00 25 01 75 01 95 01 81 02 75 03 81 03 09 51
|..%.u.....u....Q|
000000a0 75 04 25 0a 81 02 75 08 95 01 81 03 05 01 75 10
|u.%...u.......u.|
000000b0 55 00 65 00 09 30 35 00 26 00 10 46 00 10 81 02
|U.e..05.&..F....|
000000c0 09 31 26 00 10 46 00 10 81 02 c0 a1 00 05 0d 09
|.1&..F..........|
000000d0 42 15 00 25 01 75 01 95 01 81 02 75 03 81 03 09
|B..%.u.....u....|
000000e0 51 75 04 25 0a 81 02 75 08 95 01 81 03 05 01 75
|Qu.%...u.......u|
000000f0 10 55 00 65 00 09 30 35 00 26 00 10 46 00 10 81
|.U.e..05.&..F...|
00000100 02 09 31 26 00 10 46 00 10 81 02 c0 a1 00 05 0d
|..1&..F.........|
00000110 09 42 15 00 25 01 75 01 95 01 81 02 75 03 81 03
|.B..%.u.....u...|
00000120 09 51 75 04 25 0a 81 02 75 08 95 01 81 03 05 01
|.Qu.%...u.......|
00000130 75 10 55 00 65 00 09 30 35 00 26 00 10 46 00 10
|u.U.e..05.&..F..|
00000140 81 02 09 31 26 00 10 46 00 10 81 02 c0 05 0d 09
|...1&..F........|
00000150 54 95 01 75 08 15 00 25 0a 81 02 09 55 b1 02 95
|T..u...%....U...|
00000160 3e b1 03 c0 05 0d 09 02 a1 01 85 cc 09 20 a1 00
|>............ ..|
00000170 09 42 09 44 09 3c 09 45 15 00 25 01 75 01 95 04
|.B.D.<.E..%.u...|
00000180 81 02 95 01 09 32 81 02 95 03 81 03 05 01 09 30
|.....2.........0|
00000190 75 10 95 01 a4 55 0d 65 13 35 00 26 00 10 46 00
|u....U.e.5.&..F.|
000001a0 10 81 02 09 31 26 00 10 46 00 10 81 02 b4 05 0d
|....1&..F.......|
000001b0 09 30 26 ff 00 81 02 75 08 09 3d 15 81 25 7f 81
|.0&....u..=..%..|
000001c0 02 09 3e 15 81 25 7f 81 02 c0 c0 05 01 09 02 a1
|..>..%..........|
000001d0 01 85 58 09 01 a1 00 05 09 19 01 29 02 15 00 25
|..X........)...%|
000001e0 01 75 01 95 02 81 02 95 06 81 03 05 01 09 30 15
|.u............0.|
000001f0 00 26 00 10 09 31 26 00 10 75 10 95 02 55 0e 65
|.&...1&..u...U.e|
00000200 11 35 00 46 00 10 81 02 09 38 15 81 25 7f 75 08
|.5.F.....8..%.u.|
00000210 95 01 81 06 c0 c0 |......|
And here is the output from lsusb -c:
Bus 003 Device 003: ID 4c4a:4155 Jieli Technology USB Composite Device
Couldn't open device, some information will be missing
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 [unknown]
bDeviceSubClass 0 [unknown]
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x4c4a Jieli Technology
idProduct 0x4155 USB Composite Device
bcdDevice 1.00
iManufacturer 1 Jieli Technology
iProduct 2 USB Composite Device
iSerial 3 FFFFFFFFFFFFFFFF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0029
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 33 Unknown
bNumDescriptors 1
bDescriptorType 34 (null)
wDescriptorLength 534
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Best regards,
Staffan
>
>> The issue is not specific to the 6.12.y series and confirmed in 6.16.3
>> as well.
>>
>> Staffan Melin did bisect the kernels between 6.12.38 (which was still
>> working) and 6.1.41 (which was not), confirming by bisection that the
>> offending commit is
>>
>> 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>>
>> #regzbot introduced: 1a8953f4f774
>> #regzbot monitor: https://bugs.debian.org/1114557
>>
>> So it looks that the quirk applied is unfortunately affecting
>> negatively as well Staffan Melin case.
>>
>> Can you have a look?
>>
>> Regards,
>> Salvatore
>>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-07 15:10 [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device Salvatore Bonaccorso
2025-09-08 4:10 ` Terry Junge
@ 2025-09-12 12:49 ` zhangheng
2025-09-12 19:57 ` Staffan Melin
1 sibling, 1 reply; 15+ messages in thread
From: zhangheng @ 2025-09-12 12:49 UTC (permalink / raw)
To: Salvatore Bonaccorso, Jiri Kosina, Staffan Melin
Cc: Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
[-- Attachment #1: Type: text/plain, Size: 1238 bytes --]
I am currently working on resolving this issue by limiting the original
patch
based on the information in the device descriptor to avoid affecting
your device,
You can try this patch and look forward to your reply.
在 2025/9/7 23:10, Salvatore Bonaccorso 写道:
> Hi Zhang, hi Jiri,
>
> In Debian Staffan Melin reported that after an update containing the
> commit 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY"),
> the input device with same idVendor and idProduct, the Jieli
> Technology USB Composite Device, does not get recognized anymore.
>
> The full Debian report is at: https://bugs.debian.org/1114557
>
> The issue is not specific to the 6.12.y series and confirmed in 6.16.3
> as well.
>
> Staffan Melin did bisect the kernels between 6.12.38 (which was still
> working) and 6.1.41 (which was not), confirming by bisection that the
> offending commit is
>
> 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>
> #regzbot introduced: 1a8953f4f774
> #regzbot monitor: https://bugs.debian.org/1114557
>
> So it looks that the quirk applied is unfortunately affecting
> negatively as well Staffan Melin case.
>
> Can you have a look?
>
> Regards,
> Salvatore
[-- Attachment #2: 0001-HID-quirks-Add-device-descriptor-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 2175 bytes --]
From 9fb4fd3873e5693647e517c7960383c4523cd093 Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
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 <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
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-12 12:49 ` zhangheng
@ 2025-09-12 19:57 ` Staffan Melin
2025-09-13 8:53 ` Salvatore Bonaccorso
0 siblings, 1 reply; 15+ messages in thread
From: Staffan Melin @ 2025-09-12 19:57 UTC (permalink / raw)
To: zhangheng
Cc: Salvatore Bonaccorso, Jiri Kosina, Benjamin Tissoires,
linux-input, linux-kernel, regressions, stable, 1114557
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?
I used the command
git am < <file>
Best regards,
Staffan
On 2025-09-12 14:49, zhangheng wrote:
> I am currently working on resolving this issue by limiting the original
> patch
>
> based on the information in the device descriptor to avoid affecting
> your device,
>
> You can try this patch and look forward to your reply.
>
>
> 在 2025/9/7 23:10, Salvatore Bonaccorso 写道:
>> Hi Zhang, hi Jiri,
>>
>> In Debian Staffan Melin reported that after an update containing the
>> commit 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY"),
>> the input device with same idVendor and idProduct, the Jieli
>> Technology USB Composite Device, does not get recognized anymore.
>>
>> The full Debian report is at: https://bugs.debian.org/1114557
>>
>> The issue is not specific to the 6.12.y series and confirmed in 6.16.3
>> as well.
>>
>> Staffan Melin did bisect the kernels between 6.12.38 (which was still
>> working) and 6.1.41 (which was not), confirming by bisection that the
>> offending commit is
>>
>> 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>>
>> #regzbot introduced: 1a8953f4f774
>> #regzbot monitor: https://bugs.debian.org/1114557
>>
>> So it looks that the quirk applied is unfortunately affecting
>> negatively as well Staffan Melin case.
>>
>> Can you have a look?
>>
>> Regards,
>> Salvatore
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-12 19:57 ` Staffan Melin
@ 2025-09-13 8:53 ` Salvatore Bonaccorso
2025-09-13 8:55 ` Salvatore Bonaccorso
0 siblings, 1 reply; 15+ messages in thread
From: Salvatore Bonaccorso @ 2025-09-13 8:53 UTC (permalink / raw)
To: Staffan Melin
Cc: zhangheng, Jiri Kosina, Benjamin Tissoires, linux-input,
linux-kernel, regressions, stable, 1114557
Hi Staffan,
chiming in hopefully it is of help.
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.
But ideally you can provide a Tested-by on zhangheng's mainline patch
to get things rolling as needed.
Regards,
Salvatore
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-13 8:53 ` Salvatore Bonaccorso
@ 2025-09-13 8:55 ` Salvatore Bonaccorso
2025-09-13 13:11 ` Staffan Melin
0 siblings, 1 reply; 15+ messages in thread
From: Salvatore Bonaccorso @ 2025-09-13 8:55 UTC (permalink / raw)
To: Staffan Melin
Cc: zhangheng, Jiri Kosina, Benjamin Tissoires, linux-input,
linux-kernel, regressions, stable, 1114557
[-- Attachment #1: Type: text/plain, Size: 1010 bytes --]
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
[-- Attachment #2: 0001-HID-quirks-Add-device-descriptor-for-4c4a-4155.patch --]
[-- Type: text/x-diff, Size: 2181 bytes --]
From 16b03e802a858ebf3eafcfdb22e3025e1a840afd Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
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 <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 64f9728018b8..cbb658c2c60d 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -898,6 +898,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) },
{ }
};
@@ -1061,6 +1072,9 @@ bool hid_ignore(struct hid_device *hdev)
hid_match_id(hdev, hid_mouse_ignore_list))
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);
@@ -1259,7 +1273,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_have_special_driver))
--
2.51.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-13 8:55 ` Salvatore Bonaccorso
@ 2025-09-13 13:11 ` Staffan Melin
2025-09-15 8:37 ` zhangheng
0 siblings, 1 reply; 15+ messages in thread
From: Staffan Melin @ 2025-09-13 13:11 UTC (permalink / raw)
To: Salvatore Bonaccorso
Cc: zhangheng, Jiri Kosina, Benjamin Tissoires, linux-input,
linux-kernel, regressions, stable, 1114557
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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-13 13:11 ` Staffan Melin
@ 2025-09-15 8:37 ` zhangheng
2025-09-15 23:06 ` Terry Junge
0 siblings, 1 reply; 15+ messages in thread
From: zhangheng @ 2025-09-15 8:37 UTC (permalink / raw)
To: Staffan Melin, Salvatore Bonaccorso
Cc: Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel,
regressions, stable, 1114557
[-- Attachment #1: Type: text/plain, Size: 1760 bytes --]
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
[-- Attachment #2: v2-0001-HID-quirks-Add-device-descriptor-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 2178 bytes --]
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
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-15 8:37 ` zhangheng
@ 2025-09-15 23:06 ` Terry Junge
2025-09-18 14:05 ` zhangheng
0 siblings, 1 reply; 15+ messages in thread
From: Terry Junge @ 2025-09-15 23:06 UTC (permalink / raw)
To: zhangheng, Staffan Melin, Salvatore Bonaccorso
Cc: Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel,
regressions, stable, 1114557
On 9/15/25 1:37 AM, zhangheng wrote:
> 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
Your patch will not work as you expect for two reasons.
if (hid_match_id(hdev, hid_ignore_list) ||
(hid_match_id(hdev, hid_ignore_mic) && (hdev->version > 1.1)))
quirks |= HID_QUIRK_IGNORE;
hdev->version is U32 not float. Version (bcdDevice) 1.00 would be 0x0100. The value 1.1 is probably cast to 0x0001.
Second, both devices have identical VID, PID, bcdDevice, and Product names.
[ 563.104908] usb 1-1.4.1.2: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
[ 563.104910] usb 1-1.4.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 563.104911] usb 1-1.4.1.2: Product: USB Composite Device
[ 563.104912] usb 1-1.4.1.2: Manufacturer: SmartlinkTechnology
[ 563.104913] usb 1-1.4.1.2: SerialNumber: 20201111000001
[ 10.451534] usb 3-3: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
[ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 10.451543] usb 3-3: Product: USB Composite Device
[ 10.451545] usb 3-3: Manufacturer: Jieli Technology
[ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
If you could get the descriptors for the microphone device, it would be helpful.
Thanks,
Terry
>
> 在 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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-15 23:06 ` Terry Junge
@ 2025-09-18 14:05 ` zhangheng
2025-09-18 19:56 ` Staffan Melin
0 siblings, 1 reply; 15+ messages in thread
From: zhangheng @ 2025-09-18 14:05 UTC (permalink / raw)
To: Terry Junge, Staffan Melin, Salvatore Bonaccorso
Cc: Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel,
regressions, stable, 1114557
[-- Attachment #1.1: Type: text/plain, Size: 4992 bytes --]
It's interesting that I found another USB device with the same ID, but
it's a USB headphone, device descriptors in headphone.txt
Microphone.txt is the device descriptor for SMARTLINKTechnology.
I was originally planning to differentiate according to bcdHID, but
there is hdev ->version=0x100, therefore, I created the v3 patch.
The microphone device is normal, but I'm not sure if your touchscreen
function is working properly.
[ 67.417805] usb 1-3.4.2: new full-speed USB device number 11 using
xhci_hcd
[ 67.566700] usb 1-3.4.2: New USB device found, idVendor=4c4a,
idProduct=4155, bcdDevice= 1.00
[ 67.566707] usb 1-3.4.2: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[ 67.566712] usb 1-3.4.2: Product: USB Composite Device
[ 67.566717] usb 1-3.4.2: Manufacturer: SmartlinkTechnology
[ 67.566721] usb 1-3.4.2: SerialNumber: 20201111000001
[ 67.568816] DEBUG: drivers/hid/hid-quirks.c 1227 hid_gets_squirk
hdev->version = 0x100
[ 67.568827] DEBUG: drivers/hid/hid-quirks.c 1025 hid_ignore
hdev->version = 0x100
[ 67.568832] DEBUG: drivers/hid/hid-quirks.c 1227 hid_gets_squirk
hdev->version = 0x100
[ 67.569256] DEBUG: drivers/hid/hid-quirks.c 1227 hid_gets_squirk
hdev->version = 0x201
[ 39.692821] DEBUG: drivers/hid/usbhid/hid-core.c 985 usbhid_parse
dev->serial = 20201111000001
Later, I thought of using a serial number, Later, I thought of using a
serial number, but the headphone serial number was NULL,
and printing it directly would trigger OOPs, at present, I can only
consider distinguishing between manufacturers, this is v4 patch.
If there are better ideas or patches, they can also be provided. The
microphone device will arrive in a few days, and I will verify it then.
在 2025/9/16 7:06, Terry Junge 写道:
>
> On 9/15/25 1:37 AM, zhangheng wrote:
>> 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
> Your patch will not work as you expect for two reasons.
>
> if (hid_match_id(hdev, hid_ignore_list) ||
> (hid_match_id(hdev, hid_ignore_mic) && (hdev->version > 1.1)))
> quirks |= HID_QUIRK_IGNORE;
>
> hdev->version is U32 not float. Version (bcdDevice) 1.00 would be 0x0100. The value 1.1 is probably cast to 0x0001.
>
> Second, both devices have identical VID, PID, bcdDevice, and Product names.
>
> [ 563.104908] usb 1-1.4.1.2: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
> [ 563.104910] usb 1-1.4.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 563.104911] usb 1-1.4.1.2: Product: USB Composite Device
> [ 563.104912] usb 1-1.4.1.2: Manufacturer: SmartlinkTechnology
> [ 563.104913] usb 1-1.4.1.2: SerialNumber: 20201111000001
>
> [ 10.451534] usb 3-3: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
> [ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 10.451543] usb 3-3: Product: USB Composite Device
> [ 10.451545] usb 3-3: Manufacturer: Jieli Technology
> [ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
>
> If you could get the descriptors for the microphone device, it would be helpful.
>
> Thanks,
> Terry
>
>> 在 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
[-- Attachment #1.2: Type: text/html, Size: 8621 bytes --]
[-- Attachment #2: v3-0001-HID-quirks-Add-device-descriptor-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 2504 bytes --]
From 5e4a9245de142a0bc0877a3d50fbe01359a65022 Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
Date: Fri, 12 Sep 2025 20:38:18 +0800
Subject: [PATCH v3] HID: quirks: Add device descriptor for 4c4a:4155
Multiple 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 | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index ffd034566e2e..e1a6ba0e069a 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,13 @@ 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 == 0x201))
+ return true;
+ if (hid_match_id(hdev, hid_ignore_mic) && (hdev->version == 0x201))
+ return true;
+
+ pr_err("DEBUG: %s %d %s hdev->version = 0x%x\n", __FILE__, __LINE__, __func__, hdev->version);
+
return !!hid_match_id(hdev, hid_ignore_list);
}
EXPORT_SYMBOL_GPL(hid_ignore);
@@ -1268,6 +1286,12 @@ static unsigned long hid_gets_squirk(const struct hid_device *hdev)
if (hid_match_id(hdev, hid_ignore_list))
quirks |= HID_QUIRK_IGNORE;
+ if (hid_match_id(hdev, hid_ignore_mic) && (hdev->version == 0x201))
+ quirks |= HID_QUIRK_IGNORE;
+ if (hid_match_id(hdev, hid_ignore_mic) && (hdev->version == 0x100))
+ quirks |= HID_QUIRK_IGNORE;
+
+ pr_err("DEBUG: %s %d %s hdev->version = 0x%x\n", __FILE__, __LINE__, __func__, hdev->version);
if (hid_match_id(hdev, hid_mouse_ignore_list))
quirks |= HID_QUIRK_IGNORE_MOUSE;
--
2.47.1
[-- Attachment #3: v4-0001-HID-quirks-Add-device-descriptor-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 2031 bytes --]
From 55d2ccdaba36c6cf9a3639d083c1089f3320a347 Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
Date: Thu, 18 Sep 2025 21:37:07 +0800
Subject: [PATCH v4] HID: quirks: Add device descriptor for 4c4a:4155
Multiple 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/usbhid/hid-core.c | 11 +++++++++++
drivers/hid/usbhid/usbhid.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index aac0051a2cf6..d0b994f97fcc 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -992,6 +992,12 @@ static int usbhid_parse(struct hid_device *hid)
quirks = hid_lookup_quirk(hid);
+ if ((hid->vendor == USB_VENDOR_ID_SMARTLINKTECHNOLOGY) && (hid->product == USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155)) {
+ if(strcmp(dev->manufacturer, "SmartlinkTechnology") == 0) {
+ quirks |= HID_QUIRK_IGNORE;
+ }
+ }
+
if (quirks & HID_QUIRK_IGNORE)
return -ENODEV;
@@ -1432,6 +1438,11 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
spin_lock_init(&usbhid->lock);
mutex_init(&usbhid->mutex);
+ if ((hid->vendor == USB_VENDOR_ID_SMARTLINKTECHNOLOGY) && (hid->product == USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155)) {
+ if(strcmp(dev->manufacturer, "SmartlinkTechnology") == 0)
+ return 0;
+
+ }
ret = hid_add_device(hid);
if (ret) {
if (ret != -ENODEV)
diff --git a/drivers/hid/usbhid/usbhid.h b/drivers/hid/usbhid/usbhid.h
index 75fe85d3d27a..3760c73c3455 100644
--- a/drivers/hid/usbhid/usbhid.h
+++ b/drivers/hid/usbhid/usbhid.h
@@ -48,6 +48,8 @@ struct usb_interface *usbhid_find_interface(int minor);
*/
#define HID_IN_POLLING 14
+#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY 0x4c4a
+#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155 0x4155
/*
* USB-specific HID struct, to be pointed to
* from struct hid_device->driver_data
--
2.47.1
[-- Attachment #4: headphone.txt --]
[-- Type: text/plain, Size: 9696 bytes --]
Bus 001 Device 006: ID 4c4a:4155 Jieli Technology UACDemoV1.0
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x4c4a
idProduct 0x4155
bcdDevice 1.00
iManufacturer 1 Jieli Technology
iProduct 2 UACDemoV1.0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00e1
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 8
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x0047
bInCollection 2
baInterfaceNr(0) 1
baInterfaceNr(1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0000
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 2
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 6
wTerminalType 0x0101 USB Streaming
bAssocTerminal 2
bSourceID 7
iTerminal 0
AudioControl Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 5 (SELECTOR_UNIT)
bUnitID 7
bNrInPins 1
baSourceID(0) 5
iSelector 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls(0) 0x01
Mute Control
bmaControls(1) 0x02
Volume Control
bmaControls(2) 0x02
Volume Control
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 5
bSourceID 4
bControlSize 1
bmaControls(0) 0x43
Mute Control
Volume Control
Automatic Gain Control
bmaControls(1) 0x00
iFeature 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 1
bDelay 1 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 9
Transfer Type Isochronous
Synch Type Adaptive
Usage Type Data
wMaxPacketSize 0x00c4 1x 196 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 6
bDelay 1 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0060 1x 96 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 51
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
[-- Attachment #5: microphone.txt --]
[-- Type: text/plain, Size: 7021 bytes --]
Bus 001 Device 013: ID 4c4a:4155 SmartlinkTechnology USB Composite Device
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x4c4a
idProduct 0x4155
bcdDevice 1.00
iManufacturer 1 SmartlinkTechnology
iProduct 2 USB Composite Device
iSerial 3 20201111000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00a0
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x002f
bInCollection 1
baInterfaceNr(0) 1
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 5
bSourceID 4
bControlSize 2
bmaControls(0) 0x0001
Mute Control
iFeature 0
Warning: Junk at end of descriptor (1 bytes):
00
AudioControl Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 5 (SELECTOR_UNIT)
bUnitID 6
bNrInPins 1
baSourceID(0) 5
iSelector 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 6
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 5
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 6
bDelay 1 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00c0 1x 192 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 2.01
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 65
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 2.01
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 36
Report Descriptors:
** UNAVAILABLE **
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-18 14:05 ` zhangheng
@ 2025-09-18 19:56 ` Staffan Melin
2025-09-22 9:21 ` zhangheng
0 siblings, 1 reply; 15+ messages in thread
From: Staffan Melin @ 2025-09-18 19:56 UTC (permalink / raw)
To: zhangheng
Cc: Terry Junge, Salvatore Bonaccorso, Jiri Kosina,
Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
Thank you for the patches!
Unfortunately I could not apply v3, I got an error message.
While I could apply patch v4 and compile and test it, same result as
before -- no working touchscreen, and touchscreen not visible on xinput
--list. This was on 6.16.7.
Best regards,
Staffan
On 2025-09-18 16:05, zhangheng wrote:
> It's interesting that I found another USB device with the same ID, but
> it's a USB headphone, device descriptors in headphone.txt
>
> Microphone.txt is the device descriptor for SMARTLINKTechnology.
>
> I was originally planning to differentiate according to bcdHID, but
> there is hdev ->version=0x100, therefore, I created the v3 patch.
>
> The microphone device is normal, but I'm not sure if your touchscreen
> function is working properly.
>
> [ 67.417805] usb 1-3.4.2: new full-speed USB device number 11 using
> xhci_hcd
> [ 67.566700] usb 1-3.4.2: New USB device found, idVendor=4c4a,
> idProduct=4155, bcdDevice= 1.00
> [ 67.566707] usb 1-3.4.2: New USB device strings: Mfr=1, Product=2,
> SerialNumber=3
> [ 67.566712] usb 1-3.4.2: Product: USB Composite Device
> [ 67.566717] usb 1-3.4.2: Manufacturer: SmartlinkTechnology
> [ 67.566721] usb 1-3.4.2: SerialNumber: 20201111000001
> [ 67.568816] DEBUG: drivers/hid/hid-quirks.c 1227 hid_gets_squirk
> hdev->version = 0x100
> [ 67.568827] DEBUG: drivers/hid/hid-quirks.c 1025 hid_ignore
> hdev->version = 0x100
> [ 67.568832] DEBUG: drivers/hid/hid-quirks.c 1227 hid_gets_squirk
> hdev->version = 0x100
> [ 67.569256] DEBUG: drivers/hid/hid-quirks.c 1227 hid_gets_squirk
> hdev->version = 0x201
>
> [ 39.692821] DEBUG: drivers/hid/usbhid/hid-core.c 985 usbhid_parse
> dev->serial = 20201111000001
>
> Later, I thought of using a serial number, Later, I thought of using
> a serial number, but the headphone serial number was NULL,
>
> and printing it directly would trigger OOPs, at present, I can only
> consider distinguishing between manufacturers, this is v4 patch.
>
> If there are better ideas or patches, they can also be provided. The
> microphone device will arrive in a few days, and I will verify it
> then.
>
> 在 2025/9/16 7:06, Terry Junge 写道:
>
>> On 9/15/25 1:37 AM, zhangheng wrote:
>>
>>> 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
>>
>> Your patch will not work as you expect for two reasons.
>>
>> if (hid_match_id(hdev, hid_ignore_list) ||
>> (hid_match_id(hdev, hid_ignore_mic) && (hdev->version >
>> 1.1)))
>> quirks |= HID_QUIRK_IGNORE;
>>
>> hdev->version is U32 not float. Version (bcdDevice) 1.00 would be
>> 0x0100. The value 1.1 is probably cast to 0x0001.
>>
>> Second, both devices have identical VID, PID, bcdDevice, and Product
>> names.
>>
>> [ 563.104908] usb 1-1.4.1.2: New USB device found, idVendor=4c4a,
>> idProduct=4155, bcdDevice= 1.00
>> [ 563.104910] usb 1-1.4.1.2: New USB device strings: Mfr=1,
>> Product=2, SerialNumber=3
>> [ 563.104911] usb 1-1.4.1.2: Product: USB Composite Device
>> [ 563.104912] usb 1-1.4.1.2: Manufacturer: SmartlinkTechnology
>> [ 563.104913] usb 1-1.4.1.2: SerialNumber: 20201111000001
>>
>> [ 10.451534] usb 3-3: New USB device found, idVendor=4c4a,
>> idProduct=4155, bcdDevice= 1.00
>> [ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2,
>> SerialNumber=3
>> [ 10.451543] usb 3-3: Product: USB Composite Device
>> [ 10.451545] usb 3-3: Manufacturer: Jieli Technology
>> [ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
>>
>> If you could get the descriptors for the microphone device, it would
>> be helpful.
>>
>> Thanks,
>> Terry
>>
>> 在 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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-18 19:56 ` Staffan Melin
@ 2025-09-22 9:21 ` zhangheng
2025-09-22 18:33 ` Staffan Melin
0 siblings, 1 reply; 15+ messages in thread
From: zhangheng @ 2025-09-22 9:21 UTC (permalink / raw)
To: Staffan Melin
Cc: Terry Junge, Salvatore Bonaccorso, Jiri Kosina,
Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
[-- Attachment #1: Type: text/plain, Size: 126 bytes --]
Please help test this patch, I will push it to the kernel community.
Currently, the microphone device is functioning normally
[-- Attachment #2: 0001-HID-quirks-Add-device-descriptor-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 1645 bytes --]
From 532b87dbad4bd634ca4d5ff41001075f768e0bc1 Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
Date: Fri, 12 Sep 2025 20:38:18 +0800
Subject: [PATCH] HID: quirks: Add device descriptor for 4c4a:4155
Multiple USB devices have the same ID;
add device descriptors to distinguish them.
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
---
drivers/hid/hid-quirks.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index ffd034566e2e..d28b180abd72 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -913,7 +913,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) },
{ }
};
@@ -1062,6 +1061,17 @@ bool hid_ignore(struct hid_device *hdev)
strlen(elan_acpi_id[i].id)))
return true;
break;
+ case USB_VENDOR_ID_SMARTLINKTECHNOLOGY:
+ /* 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_SMARTLINKTECHNOLOGY_4155 &&
+ strncmp(hdev->name, "SmartlinkTechnology", 19) == 0 &&
+ strncmp(hdev->uniq, "20201111000001", 14) == 0)
+ return true;
+ break;
}
if (hdev->type == HID_TYPE_USBMOUSE &&
--
2.47.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-22 9:21 ` zhangheng
@ 2025-09-22 18:33 ` Staffan Melin
2025-09-29 0:39 ` Linux Hid
0 siblings, 1 reply; 15+ messages in thread
From: Staffan Melin @ 2025-09-22 18:33 UTC (permalink / raw)
To: zhangheng
Cc: Terry Junge, Salvatore Bonaccorso, Jiri Kosina,
Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
Thank you,
I can confirm that this patch fixes the touchscreen issue on my GPD DUO.
Tested-by: staffan.melin@oscillator.se
Thank you for your work!
Staffan
On 2025-09-22 11:21, zhangheng wrote:
> Please help test this patch, I will push it to the kernel community.
> Currently, the microphone device is functioning normally
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
2025-09-22 18:33 ` Staffan Melin
@ 2025-09-29 0:39 ` Linux Hid
0 siblings, 0 replies; 15+ messages in thread
From: Linux Hid @ 2025-09-29 0:39 UTC (permalink / raw)
To: Staffan Melin, zhangheng
Cc: Salvatore Bonaccorso, Jiri Kosina, Benjamin Tissoires,
linux-input, linux-kernel, regressions, stable, 1114557
All,
It's good a working solution has been found. I'll comment separately on
the patch submission.
I did some digging to find out why there were multiple devices in the
wild with the same VID:PID.
It seems that Jieli does have a valid USB VID.
Zhuhai Jieli Technology Co., LTD owns VID 13908 (0x3654)
However, in one of their public SDKs they populate the default device
descriptor with:
'J', 'L', // idVendor: 0x4a4c - JL (actually 0x4c4a)
0x55, 0x41, // idProduct: chip id ('U', 'A' 0x4155)
So anyone developing a device using that chip's SDK who doesn't change
the default VID:PID will create a device with 4c4a:4155 VID:PID.
In other SDKs I see a different PID but the same 0x4c4a VID
'5', '4', // idProduct: chip id (0x3435)
So there are probably multiple devices in the wild with 4c4a:3435
VID:PIDs as well.
Here's a link to the 4c4a:4155 SDK if you'd like to take a look.
https://github.com/Jieli-Tech/AW30N/blob/main/sdk/apps/app/bsp/common/usb/device/descriptor.c#L31
Regards,
Terry
On 9/22/2025 11:33 AM, Staffan Melin wrote:
> Thank you,
>
> I can confirm that this patch fixes the touchscreen issue on my GPD DUO.
>
> Tested-by: staffan.melin@oscillator.se
>
> Thank you for your work!
>
> Staffan
>
> On 2025-09-22 11:21, zhangheng wrote:
>> Please help test this patch, I will push it to the kernel community.
>> Currently, the microphone device is functioning normally
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-09-29 0:45 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-07 15:10 [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device Salvatore Bonaccorso
2025-09-08 4:10 ` Terry Junge
2025-09-08 9:00 ` Staffan Melin
2025-09-12 12:49 ` zhangheng
2025-09-12 19:57 ` Staffan Melin
2025-09-13 8:53 ` Salvatore Bonaccorso
2025-09-13 8:55 ` Salvatore Bonaccorso
2025-09-13 13:11 ` Staffan Melin
2025-09-15 8:37 ` zhangheng
2025-09-15 23:06 ` Terry Junge
2025-09-18 14:05 ` zhangheng
2025-09-18 19:56 ` Staffan Melin
2025-09-22 9:21 ` zhangheng
2025-09-22 18:33 ` Staffan Melin
2025-09-29 0:39 ` Linux Hid
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).