linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).