Skip to content

HID: usbhid: skip interrupt IN polling for devices with no input reports - #7

Open
Ghoul4500 wants to merge 1 commit into
OpenGamingCollective:masterfrom
Ghoul4500:ghoul/usbhid-skip-in-poll-no-input-reports
Open

HID: usbhid: skip interrupt IN polling for devices with no input reports#7
Ghoul4500 wants to merge 1 commit into
OpenGamingCollective:masterfrom
Ghoul4500:ghoul/usbhid-skip-in-poll-no-input-reports

Conversation

@Ghoul4500

@Ghoul4500 Ghoul4500 commented Aug 28, 2026

Copy link
Copy Markdown
Member

usbhid starts polling a device's interrupt IN endpoint on open
(usbhid_open() -> hid_start_in()). If the report descriptor declares no
input reports there is nothing to read there, so the poll is useless,
and on some composite devices it is also harmful.

The ASUS ROG N-Key keyboards expose a second, input-less interface used
only for RGB control via feature reports. Opening its hidraw node (any
hidraw reader does, including SDL/Steam Input or a plain cat) starts the
pointless IN poll and keypress reports on the keyboard interface get
dropped for as long as the node stays open: a lost key-down drops a
letter, a lost key-up leaves the key stuck. usbmon shows the dropped
reports never reach the URB layer.

The useless poll itself is long-standing; commit 4ac74ea ("HID:
asus: early return for ROG devices") is what exposes it on these
devices by keeping the input-less interface alive instead of ejecting
it, so its hidraw node can be opened and the poll started.

Skip the poll in usbhid_open() when the device has no input reports.
Feature reports and hidraw output keep working over the control and OUT
endpoints, so the interface is otherwise unaffected.

Fixes: 4ac74ea ("HID: asus: early return for ROG devices")
Link: https://discuss.cachyos.org/t/keyboard-input-issues-on-asus-rog-strix-16-2025-with-cachyos-during-gaming/30823
Link: ublue-os/bazzite#4590
Cc: stable@vger.kernel.org
Tested-by: Kerim Kabirov <the.privat33r+linux@pm.me>
Tested-by: GameBurrow <gameburrow@pm.me>
Signed-off-by: Ahmed Yaseen <yaseen@ghoul.dev>
Reviewed-by: Denis Benato <denis.benato@linux.dev>
@Ghoul4500
Ghoul4500 marked this pull request as ready for review August 28, 2026 15:54
@Ghoul4500
Ghoul4500 requested a review from NeroReflex August 28, 2026 15:55
@Ghoul4500 Ghoul4500 self-assigned this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant