mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Lukasz Leczkowski via B4 Relay <devnull+lukileczo.gmail.com@kernel.org>
To: Jiri Kosina <jikos@kernel.org>, Benjamin Tissoires <bentiss@kernel.org>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	 Lukasz Leczkowski <lukileczo@gmail.com>
Subject: [PATCH] HID: quirks: add ALWAYS_POLL for ASUS ProArt MD301 mouse
Date: Fri, 13 Nov 2026 20:00:32 +0100	[thread overview]
Message-ID: <20261113-hid-next-v1-1-864859cc8fb4@gmail.com> (raw)

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>



                 reply	other threads:[~2026-11-13 19:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261113-hid-next-v1-1-864859cc8fb4@gmail.com \
    --to=devnull+lukileczo.gmail.com@kernel.org \
    --cc=bentiss@kernel.org \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukileczo@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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®