[PATCH v2 00/12] HID: asus: add support for ROG Ally handhelds
From: Denis Benato
Date: Wed Aug 19 2026 - 16:02:05 EST
Hi all,
This patch series adds support for ROG Ally handhelds in the HID driver for
ASUS devices.
The changes include reinitialization of the device after exiting a sleep state,
gamepad configuration, vibration strength configuration, joysticks and triggers
range configuration, anti-deadzone configuration, response curve support,
force feedback support, gamepad mode support, turbo buttons support,
and button remapping support.
This driver is based on the original Luke's work, which was a great starting point
and I have reworked it to be upstreamable, while keeping the original functionality
intact and extending hid-asus to avoid regressions in functionality such as the
backlight control.
The ally support has been a surprisingly long task, spanning multiple years and
being used in Steam OS and well as other distributions for quite a while,
and I am happy to finally be submitting it.
At this time LEDs are not part of the patch series as I have work in progress to
unify LEDs handling across all ASUS devices, and I will submit that in a separate
patch series when the userspace interface will be ready to express capabilities
of these devices, but that will take some more time.
This driver is the culmination of a lot of work, from many different people,
and I want to thank Luke for his original work, as well as the many people that have
helped me test and provide feedback on the driver: Khamunetri, Jonathan, Derek,
Matthew and others that have helped during these years.
Best regards,
Denis Benato
-v2
- HID: asus: add support for ROG Ally handhelds
- Force release all vendor buttons (KEY_F19 and KEY_F20 were missing) to prevent "stuck" ghosting on resume
- Fix misaligned continuation line in hid_asus_ally_raw_event()
- Reword the 0x0B report comment to avoid a checkpatch "fallthrough" false positive
- Normalize kernel-doc comments (function name with "()", parameters, Return sections)
- HID: asus: add gamepad configuration
- Normalize kernel-doc comments (ally_check_capability(), ally_get_config(), ally_config_create())
- HID: asus: add vibration strength configuration
- Normalize the ally_set_vibration_intensity() kernel-doc comment
- HID: asus: add joysticks inner and outer range configuration
- Restructure the ally_set_joystick_thresholds() kernel-doc comment
- HID: asus: add triggers inner and outer range configuration
- Restructure the ally_set_trigger_ranges() kernel-doc comment
- HID: asus: add joysticks anti-deadzone configuration
- Normalize the ally_set_anti_deadzone() kernel-doc comment
- HID: asus: add support for response curve
- Normalize the ally_set_joystick_resp_curve() kernel-doc comment
- HID: asus: add support to force feedback
- Add a newline after input_set_capability(input, EV_FF, FF_RUMBLE);
- Convert the ally_x_send_ff_report() comment to kernel-doc
- HID: asus: add support for gamepad mode
- Normalize the ally_set_gamepad_mode() kernel-doc comment and convert ally_apply_gamepad_mode() to kernel-doc
- HID: asus: add support for turbo buttons
- Normalize kernel-doc comments (ally_set_turbo_params(), ally_create_button_attributes(), ally_remove_button_attributes())
- HID: asus: add support for btn remapping
- Convert the comments to kernel-doc
- Fix an uninitialized variable warning by returning early when the button mappings allocation fails
Denis Benato (12):
HID: asus: reinitialize the device after exiting a sleep state
HID: asus: add support for ROG Ally handhelds
HID: asus: add gamepad configuration
HID: asus: add vibration strength configuration
HID: asus: add joysticks inner and outer range configuration
HID: asus: add triggers inner and outer range configuration
HID: asus: add joysticks anti-deadzone configuration
HID: asus: add support for response curve
HID: asus: add support to force feedback
HID: asus: add support for gamepad mode
HID: asus: add support for turbo buttons
HID: asus: add support for btn remapping
drivers/hid/hid-asus.c | 4686 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 4525 insertions(+), 161 deletions(-)
--
2.47.3