]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
HID: quirks: Add ALWAYS_POLL quirk for SIGMACHIP USB mouse
authorhlleng <a909204013@gmail.com>
Tue, 12 May 2026 01:57:37 +0000 (09:57 +0800)
committerBenjamin Tissoires <bentiss@kernel.org>
Thu, 21 May 2026 14:51:30 +0000 (16:51 +0200)
The SIGMACHIP USB mouse with VID/PID 1c4f:0034 can disconnect and
re-enumerate repeatedly after it has been enumerated if its interrupt
endpoint is not continuously polled.

This was observed with the device reporting itself as "SIGMACHIP Usb
Mouse". Keeping the input event device open avoids the disconnects.

Add HID_QUIRK_ALWAYS_POLL for this device so the HID core keeps polling
it even when there is no userspace input consumer.

Cc: stable@vger.kernel.org
Signed-off-by: hlleng <a909204013@gmail.com>
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
drivers/hid/hid-ids.h
drivers/hid/hid-quirks.c

index 4657d96fb0836f10cca60ca22767874516f41533..426ff78c1c033d6b9ced1e5790aa6a39807ee309 100644 (file)
 
 #define USB_VENDOR_ID_SIGMA_MICRO      0x1c4f
 #define USB_DEVICE_ID_SIGMA_MICRO_KEYBOARD     0x0002
+#define USB_DEVICE_ID_SIGMA_MICRO_USB_MOUSE    0x0034
 #define USB_DEVICE_ID_SIGMA_MICRO_KEYBOARD2    0x0059
 
 #define USB_VENDOR_ID_SIGMATEL         0x066F
index 512049963978a723f17eaba0134b80da0063744e..57d8efdd9b8900c8b947c71c6b689f9667240a3a 100644 (file)
@@ -187,6 +187,7 @@ static const struct hid_device_id hid_quirks[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD), HID_QUIRK_NO_INIT_REPORTS },
        { HID_USB_DEVICE(USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB), HID_QUIRK_NOGET },
        { HID_USB_DEVICE(USB_VENDOR_ID_SIGMA_MICRO, USB_DEVICE_ID_SIGMA_MICRO_KEYBOARD), HID_QUIRK_NO_INIT_REPORTS },
+       { HID_USB_DEVICE(USB_VENDOR_ID_SIGMA_MICRO, USB_DEVICE_ID_SIGMA_MICRO_USB_MOUSE), HID_QUIRK_ALWAYS_POLL },
        { HID_USB_DEVICE(USB_VENDOR_ID_SIGMATEL, USB_DEVICE_ID_SIGMATEL_STMP3780), HID_QUIRK_NOGET },
        { HID_USB_DEVICE(USB_VENDOR_ID_SIS_TOUCH, USB_DEVICE_ID_SIS1030_TOUCH), HID_QUIRK_NOGET },
        { HID_USB_DEVICE(USB_VENDOR_ID_SIS_TOUCH, USB_DEVICE_ID_SIS817_TOUCH), HID_QUIRK_NOGET },