Skip to content

HID: asus: fix ROG Ally joystick ring LEDs, add strobe/direction - #3

Open
kndclark wants to merge 4 commits into
NeroReflex:allyfrom
kndclark:ally-led-fixes
Open

HID: asus: fix ROG Ally joystick ring LEDs, add strobe/direction#3
kndclark wants to merge 4 commits into
NeroReflex:allyfrom
kndclark:ally-led-fixes

Conversation

@kndclark

Copy link
Copy Markdown

First patch fixes the joystick ring on top of the multi-zone rework. hardware tested on an Ally X across all modes and suspend/resume. The remaining three restore effects that the rework didn't carry over: strobe, a background color for breathing, and direction for animated effects.

@NeroReflex
NeroReflex force-pushed the ally branch 4 times, most recently from f759008 to bbd3c71 Compare July 26, 2026 01:49
@NeroReflex
NeroReflex force-pushed the ally branch 2 times, most recently from 7c00659 to 9bc9553 Compare July 26, 2026 16:51
@kndclark
kndclark force-pushed the ally-led-fixes branch 3 times, most recently from a59abf3 to 308d8df Compare July 26, 2026 21:43
@kndclark kndclark changed the title HID: asus: fix ROG Ally joystick ring LEDs, add strobe/color2/direction HID: asus: fix ROG Ally joystick ring LEDs, add strobe/direction Jul 26, 2026
@kndclark
kndclark force-pushed the ally-led-fixes branch 2 times, most recently from fc0d3c6 to 79119b0 Compare July 31, 2026 21:44
@NeroReflex
NeroReflex force-pushed the ally branch 3 times, most recently from 5eb0768 to ecdba22 Compare August 13, 2026 14:39
NeroReflex and others added 4 commits August 14, 2026 11:51
ASUS ROG laptops supports a protocol called Aura to control LEDs over
multiple zones: this protocol allows changing effects, colors,
brightness and transitioning speed across different colors on certain
effects.

Add support for said protocol to allow complete customization of
LEDs mounted on the ROG ally and laid out the foundation for all
other laptops.

Assisted-by: glm-5.2
Assisted-by: claude-fable-5
Signed-off-by: Denis Benato <denis.benato@linux.dev>
Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
The Ally X gamepad interface delivers 16-byte input reports (report ID,
six 16-bit axes, and three button bytes).

Pin the report struct size to the report size definition with a
static_assert to prevent drift against the wire format.

Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
Multicolor LEDs on ROG Ally expose 3 color components for RGB lighting,
while other devices expose 6 components for primary and background colors.

Describe exposed color components per device descriptor, report 3 for
the Ally, and dynamically set num_colors and color set attributes.

Tested on a ROG Ally X.

Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
Align the static lighting effect string to "monocolor" with standard
sysfs aliases, identify RGB devices using LED_COLOR_ID_RGB, and default
joystick rings to dark (0x00) until configured by userspace.

Tested on a ROG Ally X.

Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
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