* [PATCH] HID: quirks: add ALWAYS_POLL for ASUS ProArt MD301 mouse
@ 2026-11-13 19:00 Lukasz Leczkowski via B4 Relay
0 siblings, 0 replies; only message in thread
From: Lukasz Leczkowski via B4 Relay @ 2026-11-13 19:00 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: linux-input, linux-kernel, Lukasz Leczkowski
From: Lukasz Leczkowski <lukileczo@gmail.com>
In mouse firmware version 0.00.31 and receiver 0.00.20, the receiver
of the ASUS ProArt MD301 mouse (0b05:1cd3) delays button events
by up to ~500 ms.
The receiver exposes five HID interfaces. Besides the keyboard and mouse
interfaces, interface 4 (vendor usage page 0xffc1) carries a copy of
every button and wheel event as a 64-byte vendor report. As this
interface has no input handlers, usbhid does not poll its interrupt-IN
endpoint unless userspace opens the hidraw node. The firmware appears to
hold back the mouse report on interface 1 until the vendor report has
been read or some timeout expires.
Add HID_QUIRK_ALWAYS_POLL for the receiver so that all of its endpoints
are polled continuously.
The issue was analysed with the help of Claude Code (Claude Opus 5.5),
which captured the raw HID reports, identified the unpolled vendor
interface and drafted this patch.
Tested on 7.3.0 with this patch applied;
clicks are delivered immediately and double-clicks work again.
Signed-off-by: Lukasz Leczkowski <lukileczo@gmail.com>
---
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-quirks.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 91319aa65..e638afb1d 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -236,6 +236,7 @@
#define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
#define USB_DEVICE_ID_ASUSTEK_XGM_2022 0x1970
#define USB_DEVICE_ID_ASUSTEK_XGM_2023 0x1a9a
+#define USB_DEVICE_ID_ASUSTEK_MD301_DONGLE 0x1cd3
#define USB_VENDOR_ID_ATEN 0x0557
#define USB_DEVICE_ID_ATEN_UC100KM 0x2004
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index 793db001a..952e1aec1 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -37,6 +37,7 @@ static const struct hid_device_id hid_quirks[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_ALPS, USB_DEVICE_ID_IBM_GAMEPAD), HID_QUIRK_BADPAD },
{ HID_USB_DEVICE(USB_VENDOR_ID_AMI, USB_DEVICE_ID_AMI_VIRT_KEYBOARD_AND_MOUSE), HID_QUIRK_ALWAYS_POLL },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_REVB_ANSI), HID_QUIRK_ALWAYS_POLL },
+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_MD301_DONGLE), HID_QUIRK_ALWAYS_POLL },
{ HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM), HID_QUIRK_NOGET },
{ HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC), HID_QUIRK_NOGET },
{ HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM), HID_QUIRK_NOGET },
---
base-commit: 720806515cb6921ab05caaa6f470f7054b56385e
change-id: 20261113-hid-next-42fc615deb17
Best regards,
--
Lukasz Leczkowski <lukileczo@gmail.com>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-13 19:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-13 19:00 [PATCH] HID: quirks: add ALWAYS_POLL for ASUS ProArt MD301 mouse Lukasz Leczkowski via B4 Relay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®