Skip to content

[FROM-ML] HID: usbhid: skip interrupt IN polling for devices with no …#62

Open
Ghoul4500 wants to merge 1 commit into
ogc-7.1.yfrom
usbhid-in-polling
Open

[FROM-ML] HID: usbhid: skip interrupt IN polling for devices with no …#62
Ghoul4500 wants to merge 1 commit into
ogc-7.1.yfrom
usbhid-in-polling

Conversation

@Ghoul4500

Copy link
Copy Markdown
Member

@Ghoul4500 Ghoul4500 self-assigned this Jun 5, 2026
@KyleGospo

Copy link
Copy Markdown
Member

Thanks for this, can you rebase on 7.1.y-ogc?

@Ghoul4500 Ghoul4500 changed the base branch from ogc-7.0.y to ogc-7.1.y June 16, 2026 07:24
…input reports

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")
Tested-by: Kerim Kabirov <the.privat33r+linux@pm.me>
Tested-by: GameBurrow <gameburrow@pm.me>
Signed-off-by: Ahmed Yaseen <yaseen@ghoul.dev>
@Ghoul4500 Ghoul4500 force-pushed the usbhid-in-polling branch from 2815593 to 12252dc Compare June 16, 2026 07:29
@Ghoul4500

Copy link
Copy Markdown
Member Author

Thanks for this, can you rebase on 7.1.y-ogc?

done

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.

2 participants