* [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).