* [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
@ 2025-09-23 2:24 Zhang Heng
2025-09-29 0:42 ` Linux Hid
0 siblings, 1 reply; 13+ messages in thread
From: Zhang Heng @ 2025-09-23 2:24 UTC (permalink / raw)
To: jikos, bentiss, staffan.melin; +Cc: linux-input, linux-kernel, Zhang Heng
Multiple USB devices have the same ID;
add device descriptors to distinguish them.
Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
Tested-by: staffan.melin@oscillator.se
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] 13+ messages in thread
* Re: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-09-23 2:24 [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155 Zhang Heng
@ 2025-09-29 0:42 ` Linux Hid
2025-10-13 8:32 ` zhangheng
0 siblings, 1 reply; 13+ messages in thread
From: Linux Hid @ 2025-09-29 0:42 UTC (permalink / raw)
To: Zhang Heng, jikos, bentiss, staffan.melin; +Cc: linux-input, linux-kernel
Hi Zhang,
The subject doesn't reflect what the patch is doing. You are not adding
a device descriptor, you are fixing a regression.
On 9/22/2025 7:24 PM, Zhang Heng wrote:
> Multiple USB devices have the same ID;
> add device descriptors to distinguish them.
>
> Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
Should have a Fixes: tag referencing the regression bug.
Also a CC: tag for 1114557@bugs.debian.org
Possibly a CC: tag for stable@vger.kernel.org as well?
> Tested-by: staffan.melin@oscillator.se
> 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) },
> { }
> };
Smartlink Technology does not own the 0x4c4a VID or the 0x4155 PID. They
are an artifact of the Jieli SDK they used in development so the
#defines should not imply ownership by Smartlink. VID 0x4c4a is
currently unassigned by the USBIF and is therefore 'reserved'.
Maybe change
USB_VENDOR_ID_SMARTLINKTECHNOLOGY to USB_VENDOR_ID_JIELI_SDK_DEFAULT
and
USB_DEVICE_ID_SMARTLINKTRCHNOLOGY_4155 to USB_DEVICE_ID_JIELI_SDK_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)
Using the serial number as a device identifier is somewhat risky. The
serial number is optional for a USB device but if it is used then it's
supposed to be unique for each device. Given how horrible the
configuration and HID descriptors are for this device it's unlikely that
they went to the trouble to give each unit a unique serial number. But
you should check a few of the devices (if you have more than one) to
verify they all have the same 20201111000001 serial number.
It's too bad the bcdHID version test for 0x0201 didn't work. The
hid->version field is filled by usbhid_probe with bcdDevice before both
hid_lookup_quirk and hid_ignore are called and then updated with bcdHID
by usbhid_parse after they have been called.
> + return true;
> + break;
> }
>
> if (hdev->type == HID_TYPE_USBMOUSE &&
Thanks
Terry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-09-29 0:42 ` Linux Hid
@ 2025-10-13 8:32 ` zhangheng
2025-10-22 6:04 ` Bug#1114557: " Salvatore Bonaccorso
2025-10-24 0:39 ` Terry Junge
0 siblings, 2 replies; 13+ messages in thread
From: zhangheng @ 2025-10-13 8:32 UTC (permalink / raw)
To: Linux Hid, jikos, bentiss, staffan.melin
Cc: linux-input, linux-kernel, 1114557
It happened to be the holiday, so communication was a bit troublesome.
However, after a brief discussion with the microphone manufacturer,
it was found that the serial number was still 20201111000001 on another
microphone device. So, should we add it?
在 2025/9/29 8:42, Linux Hid 写道:
> Hi Zhang,
>
> The subject doesn't reflect what the patch is doing. You are not adding
> a device descriptor, you are fixing a regression.
>
> On 9/22/2025 7:24 PM, Zhang Heng wrote:
>> Multiple USB devices have the same ID;
>> add device descriptors to distinguish them.
>>
>> Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
> Should have a Fixes: tag referencing the regression bug.
> Also a CC: tag for 1114557@bugs.debian.org
> Possibly a CC: tag for stable@vger.kernel.org as well?
>
>> Tested-by: staffan.melin@oscillator.se
>> 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) },
>> { }
>> };
> Smartlink Technology does not own the 0x4c4a VID or the 0x4155 PID. They
> are an artifact of the Jieli SDK they used in development so the
> #defines should not imply ownership by Smartlink. VID 0x4c4a is
> currently unassigned by the USBIF and is therefore 'reserved'.
>
> Maybe change
> USB_VENDOR_ID_SMARTLINKTECHNOLOGY to USB_VENDOR_ID_JIELI_SDK_DEFAULT
> and
> USB_DEVICE_ID_SMARTLINKTRCHNOLOGY_4155 to USB_DEVICE_ID_JIELI_SDK_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)
> Using the serial number as a device identifier is somewhat risky. The
> serial number is optional for a USB device but if it is used then it's
> supposed to be unique for each device. Given how horrible the
> configuration and HID descriptors are for this device it's unlikely that
> they went to the trouble to give each unit a unique serial number. But
> you should check a few of the devices (if you have more than one) to
> verify they all have the same 20201111000001 serial number.
>
> It's too bad the bcdHID version test for 0x0201 didn't work. The
> hid->version field is filled by usbhid_probe with bcdDevice before both
> hid_lookup_quirk and hid_ignore are called and then updated with bcdHID
> by usbhid_parse after they have been called.
>
>> + return true;
>> + break;
>> }
>>
>> if (hdev->type == HID_TYPE_USBMOUSE &&
> Thanks
> Terry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Bug#1114557: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-10-13 8:32 ` zhangheng
@ 2025-10-22 6:04 ` Salvatore Bonaccorso
2025-10-23 13:10 ` Staffan Melin
2025-10-24 0:39 ` Terry Junge
1 sibling, 1 reply; 13+ messages in thread
From: Salvatore Bonaccorso @ 2025-10-22 6:04 UTC (permalink / raw)
To: zhangheng, 1114557
Cc: Linux Hid, jikos, bentiss, staffan.melin, linux-input,
linux-kernel
Hi,
On Mon, Oct 13, 2025 at 04:32:39PM +0800, zhangheng wrote:
> It happened to be the holiday, so communication was a bit troublesome.
>
> However, after a brief discussion with the microphone manufacturer,
>
> it was found that the serial number was still 20201111000001 on another
>
> microphone device. So, should we add it?
As this issue still affects one of our users in Debian, is there
anything which can be done to unblock the situation? Does that mean
that the proposed patch is not good for the microphone device?
My understanding is that it fixes at least Staffan's case which
regressed from 1a8953f4f774 ("HID: Add IGNORE quirk for
SMARTLINKTECHNOLOGY").
Regards,
Salvatore
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Bug#1114557: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-10-22 6:04 ` Bug#1114557: " Salvatore Bonaccorso
@ 2025-10-23 13:10 ` Staffan Melin
0 siblings, 0 replies; 13+ messages in thread
From: Staffan Melin @ 2025-10-23 13:10 UTC (permalink / raw)
To: Salvatore Bonaccorso
Cc: zhangheng, 1114557, Linux Hid, jikos, bentiss, linux-input,
linux-kernel
Thank you Salvatore, for moving this forward.
I can add that the issue has been reported by several users on a GPD DUO
channel on Discord -- all are on newer kernels but have different Linux
distributions.
I can also confirm that the patch does solve my problem. Looking forward
to some resolution of this, as it stops me from upgrading to Testing. :)
Best regards,
Staffan
On 2025-10-22 08:04, Salvatore Bonaccorso wrote:
> Hi,
>
> On Mon, Oct 13, 2025 at 04:32:39PM +0800, zhangheng wrote:
>> It happened to be the holiday, so communication was a bit troublesome.
>>
>> However, after a brief discussion with the microphone manufacturer,
>>
>> it was found that the serial number was still 20201111000001 on
>> another
>>
>> microphone device. So, should we add it?
>
> As this issue still affects one of our users in Debian, is there
> anything which can be done to unblock the situation? Does that mean
> that the proposed patch is not good for the microphone device?
>
> My understanding is that it fixes at least Staffan's case which
> regressed from 1a8953f4f774 ("HID: Add IGNORE quirk for
> SMARTLINKTECHNOLOGY").
>
> Regards,
> Salvatore
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-10-13 8:32 ` zhangheng
2025-10-22 6:04 ` Bug#1114557: " Salvatore Bonaccorso
@ 2025-10-24 0:39 ` Terry Junge
2025-10-24 3:32 ` zhangheng
1 sibling, 1 reply; 13+ messages in thread
From: Terry Junge @ 2025-10-24 0:39 UTC (permalink / raw)
To: zhangheng, jikos, bentiss, staffan.melin
Cc: linux-input, linux-kernel, 1114557
Hi Zhang,
Sorry my earlier emails had my name mangled by Thunderbird. I am not
Linux Hid. I am Terry Junge.
Anyway, are you planning on sending a V3 of this patch?
Also, would it be possible for you to get the report descriptor from the
microphone.
Thanks,
Terry
On 10/13/2025 1:32 AM, zhangheng wrote:
> It happened to be the holiday, so communication was a bit troublesome.
>
> However, after a brief discussion with the microphone manufacturer,
>
> it was found that the serial number was still 20201111000001 on another
>
> microphone device. So, should we add it?
>
> 在 2025/9/29 8:42, Linux Hid 写道:
>> Hi Zhang,
>>
>> The subject doesn't reflect what the patch is doing. You are not adding
>> a device descriptor, you are fixing a regression.
>>
>> On 9/22/2025 7:24 PM, Zhang Heng wrote:
>>> Multiple USB devices have the same ID;
>>> add device descriptors to distinguish them.
>>>
>>> Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>> Should have a Fixes: tag referencing the regression bug.
>> Also a CC: tag for 1114557@bugs.debian.org
>> Possibly a CC: tag for stable@vger.kernel.org as well?
>>
>>> Tested-by: staffan.melin@oscillator.se
>>> 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) },
>>> { }
>>> };
>> Smartlink Technology does not own the 0x4c4a VID or the 0x4155 PID. They
>> are an artifact of the Jieli SDK they used in development so the
>> #defines should not imply ownership by Smartlink. VID 0x4c4a is
>> currently unassigned by the USBIF and is therefore 'reserved'.
>>
>> Maybe change
>> USB_VENDOR_ID_SMARTLINKTECHNOLOGY to USB_VENDOR_ID_JIELI_SDK_DEFAULT
>> and
>> USB_DEVICE_ID_SMARTLINKTRCHNOLOGY_4155 to USB_DEVICE_ID_JIELI_SDK_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)
>> Using the serial number as a device identifier is somewhat risky. The
>> serial number is optional for a USB device but if it is used then it's
>> supposed to be unique for each device. Given how horrible the
>> configuration and HID descriptors are for this device it's unlikely that
>> they went to the trouble to give each unit a unique serial number. But
>> you should check a few of the devices (if you have more than one) to
>> verify they all have the same 20201111000001 serial number.
>>
>> It's too bad the bcdHID version test for 0x0201 didn't work. The
>> hid->version field is filled by usbhid_probe with bcdDevice before both
>> hid_lookup_quirk and hid_ignore are called and then updated with bcdHID
>> by usbhid_parse after they have been called.
>>
>>> + return true;
>>> + break;
>>> }
>>> if (hdev->type == HID_TYPE_USBMOUSE &&
>> Thanks
>> Terry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-10-24 0:39 ` Terry Junge
@ 2025-10-24 3:32 ` zhangheng
2025-10-24 14:22 ` Staffan Melin
2025-10-24 22:28 ` Terry Junge
0 siblings, 2 replies; 13+ messages in thread
From: zhangheng @ 2025-10-24 3:32 UTC (permalink / raw)
To: Terry Junge, jikos, bentiss, staffan.melin
Cc: linux-input, linux-kernel, 1114557, stable
[-- Attachment #1: Type: text/plain, Size: 139 bytes --]
Hi Terry Junge,
I have made the changes as per your suggestion.
mic.txt is the microphone report descriptor and is working properly.
[-- Attachment #2: mic.txt --]
[-- Type: text/plain, Size: 293 bytes --]
klin@zhangheng:~/桌面$ sudo usbhid-dump
001:008:002:DESCRIPTOR 1761275817.253121
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01
05 08 19 01 29 03 91 02 95 01 75 05 91 01 95 06
75 08 15 00 26 FF 00 05 07 19 00 2A FF 00 81 00
C0
[-- Attachment #3: v3-0001-HID-quirks-Change-manufacturer-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 2479 bytes --]
From 4d670a785276a8fd1568c9e7e40179809b3dd5ec 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: Change manufacturer for 4c4a:4155
Based on available evidence, the USB ID 4c4a:4155 used by multiple
devices has been attributed to Jieli. The commit 1a8953f4f774
("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") affected touchscreen
functionality. A manufacturer check was added to maintain microphone
compatibility, enabling both devices to function properly.
Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
Cc: stable@kernel.org
Tested-by: staffan.melin@oscillator.se
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
---
drivers/hid/hid-ids.h | 4 ++--
drivers/hid/hid-quirks.c | 11 ++++++++++-
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 5721b8414bbd..0b1ff1ec275e 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1539,7 +1539,7 @@
#define USB_VENDOR_ID_SIGNOTEC 0x2133
#define USB_DEVICE_ID_SIGNOTEC_VIEWSONIC_PD1011 0x0018
-#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY 0x4c4a
-#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155 0x4155
+#define USB_VENDOR_ID_JIELI_SDK_DEFAULT 0x4c4a
+#define USB_DEVICE_ID_JIELI_SDK_4155 0x4155
#endif
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index ffd034566e2e..0058c01aa8b3 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,16 @@ bool hid_ignore(struct hid_device *hdev)
strlen(elan_acpi_id[i].id)))
return true;
break;
+ case USB_VENDOR_ID_JIELI_SDK_DEFAULT:
+ /*
+ * 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.
+ */
+ if (hdev->product == USB_DEVICE_ID_JIELI_SDK_4155 &&
+ strncmp(hdev->name, "SmartlinkTechnology", 19) == 0)
+ return true;
+ break;
}
if (hdev->type == HID_TYPE_USBMOUSE &&
--
2.47.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-10-24 3:32 ` zhangheng
@ 2025-10-24 14:22 ` Staffan Melin
2025-10-24 22:28 ` Terry Junge
1 sibling, 0 replies; 13+ messages in thread
From: Staffan Melin @ 2025-10-24 14:22 UTC (permalink / raw)
To: zhangheng
Cc: Terry Junge, jikos, bentiss, linux-input, linux-kernel, 1114557,
stable
Thank you,
I can confirm that this latest patch fixes the issue on my GPD Duo.
Tested-by: staffan.melin@oscillator.se
Many thanks,
Staffan
On 2025-10-24 05:32, zhangheng wrote:
> Hi Terry Junge,
>
> I have made the changes as per your suggestion.
> mic.txt is the microphone report descriptor and is working properly.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155
2025-10-24 3:32 ` zhangheng
2025-10-24 14:22 ` Staffan Melin
@ 2025-10-24 22:28 ` Terry Junge
2025-10-26 3:34 ` [PATCH v4] HID: quirks: Change manufacturer " zhangheng
1 sibling, 1 reply; 13+ messages in thread
From: Terry Junge @ 2025-10-24 22:28 UTC (permalink / raw)
To: zhangheng, jikos, bentiss, staffan.melin
Cc: linux-input, linux-kernel, 1114557, stable
Hi Zhang,
Since the manufacturer has verified that all the microphones have the
same serial number you could add the test for that as well if you want.
The report descriptor is clearly for a keyboard/keypad and should be
ignored.
In any case, the current v3 attached patch does resolve the conflict.
Reviewed-by: Terry Junge <linuxhid@cosmicgizmosystems.com>
On 10/23/2025 8:32 PM, zhangheng wrote:
> Hi Terry Junge,
>
> I have made the changes as per your suggestion.
> mic.txt is the microphone report descriptor and is working properly.
>
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v4] HID: quirks: Change manufacturer for 4c4a:4155
2025-10-24 22:28 ` Terry Junge
@ 2025-10-26 3:34 ` zhangheng
2025-10-26 10:45 ` Staffan Melin
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: zhangheng @ 2025-10-26 3:34 UTC (permalink / raw)
To: Terry Junge, jikos, bentiss, staffan.melin
Cc: linux-input, linux-kernel, 1114557, stable
[-- Attachment #2: v4-0001-HID-quirks-Change-manufacturer-for-4c4a-4155.patch --]
[-- Type: text/plain, Size: 2837 bytes --]
From 01be0e31b4fd991f955f77ec06d0c8b7a6d0fb13 Mon Sep 17 00:00:00 2001
From: Zhang Heng <zhangheng@kylinos.cn>
Date: Fri, 12 Sep 2025 20:38:18 +0800
Subject: [PATCH v4] HID: quirks: Change manufacturer for 4c4a:4155
Based on available evidence, the USB ID 4c4a:4155 used by multiple
devices has been attributed to Jieli. The commit 1a8953f4f774
("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") affected touchscreen
functionality. Added checks for manufacturer and serial number to
maintain microphone compatibility, enabling both devices to function
properly.
Fixes: 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
Cc: stable@vger.kernel.org
Tested-by: staffan.melin@oscillator.se
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
---
Changes in v4:
-- add serial number. Since I saw JIELI using identical IDs for different
devices with distinct serial numbers, I worry SMARTLINKTECHNOLOGY might
reuse this ID for touchscreens. Adding serial number verification provides
extra insurance.
drivers/hid/hid-ids.h | 4 ++--
drivers/hid/hid-quirks.c | 13 ++++++++++++-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 66f05d02cfca..5e6e87487205 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1546,7 +1546,7 @@
#define USB_VENDOR_ID_SIGNOTEC 0x2133
#define USB_DEVICE_ID_SIGNOTEC_VIEWSONIC_PD1011 0x0018
-#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY 0x4c4a
-#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155 0x4155
+#define USB_VENDOR_ID_JIELI_SDK_DEFAULT 0x4c4a
+#define USB_DEVICE_ID_JIELI_SDK_4155 0x4155
#endif
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index bcd4bccf1a7c..22760ac50f2d 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -915,7 +915,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) },
{ }
};
@@ -1064,6 +1063,18 @@ bool hid_ignore(struct hid_device *hdev)
strlen(elan_acpi_id[i].id)))
return true;
break;
+ case USB_VENDOR_ID_JIELI_SDK_DEFAULT:
+ /*
+ * 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_JIELI_SDK_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] 13+ messages in thread
* Re: [PATCH v4] HID: quirks: Change manufacturer for 4c4a:4155
2025-10-26 3:34 ` [PATCH v4] HID: quirks: Change manufacturer " zhangheng
@ 2025-10-26 10:45 ` Staffan Melin
2025-10-26 19:58 ` Terry Junge
2025-10-30 10:24 ` Jiri Kosina
2 siblings, 0 replies; 13+ messages in thread
From: Staffan Melin @ 2025-10-26 10:45 UTC (permalink / raw)
To: Terry Junge, jikos, bentiss, zhangheng
Cc: linux-input, linux-kernel, 1114557, stable
Thank you,
this patch also works fine on my GPD DUO.
Tested-by: Staffan Melin, staffan.melin@oscillator.se
Best regards,
Staffan Melin
"zhangheng" zhangheng@kylinos.cn – 26 oktober 2025 kl. 04:35
>
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4] HID: quirks: Change manufacturer for 4c4a:4155
2025-10-26 3:34 ` [PATCH v4] HID: quirks: Change manufacturer " zhangheng
2025-10-26 10:45 ` Staffan Melin
@ 2025-10-26 19:58 ` Terry Junge
2025-10-30 10:24 ` Jiri Kosina
2 siblings, 0 replies; 13+ messages in thread
From: Terry Junge @ 2025-10-26 19:58 UTC (permalink / raw)
To: zhangheng, jikos, bentiss, staffan.melin
Cc: linux-input, linux-kernel, 1114557, stable
for v4-0001-HID-quirks-Change-manufacturer-for-4c4a-4155.patch
Reviewed-by: Terry Junge <linuxhid@cosmicgizmosystems.com>
On 10/25/2025 8:34 PM, zhangheng wrote:
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4] HID: quirks: Change manufacturer for 4c4a:4155
2025-10-26 3:34 ` [PATCH v4] HID: quirks: Change manufacturer " zhangheng
2025-10-26 10:45 ` Staffan Melin
2025-10-26 19:58 ` Terry Junge
@ 2025-10-30 10:24 ` Jiri Kosina
2 siblings, 0 replies; 13+ messages in thread
From: Jiri Kosina @ 2025-10-30 10:24 UTC (permalink / raw)
To: zhangheng
Cc: Terry Junge, bentiss, staffan.melin, linux-input, linux-kernel,
1114557, stable
I have updated the shortlog to be a little bit more descriptive and
applied, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-10-30 10:24 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-23 2:24 [PATCH v2] HID: quirks: Add device descriptor for 4c4a:4155 Zhang Heng
2025-09-29 0:42 ` Linux Hid
2025-10-13 8:32 ` zhangheng
2025-10-22 6:04 ` Bug#1114557: " Salvatore Bonaccorso
2025-10-23 13:10 ` Staffan Melin
2025-10-24 0:39 ` Terry Junge
2025-10-24 3:32 ` zhangheng
2025-10-24 14:22 ` Staffan Melin
2025-10-24 22:28 ` Terry Junge
2025-10-26 3:34 ` [PATCH v4] HID: quirks: Change manufacturer " zhangheng
2025-10-26 10:45 ` Staffan Melin
2025-10-26 19:58 ` Terry Junge
2025-10-30 10:24 ` Jiri Kosina
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).