HID: asus: fix ROG Ally joystick ring LEDs, add strobe/direction - #3
Open
kndclark wants to merge 5 commits into
Open
HID: asus: fix ROG Ally joystick ring LEDs, add strobe/direction#3kndclark wants to merge 5 commits into
kndclark wants to merge 5 commits into
Conversation
NeroReflex
force-pushed
the
ally
branch
4 times, most recently
from
July 26, 2026 01:49
f759008 to
bbd3c71
Compare
NeroReflex
force-pushed
the
ally
branch
2 times, most recently
from
July 26, 2026 16:51
7c00659 to
9bc9553
Compare
The joystick ring brightness fell back to the last non-zero level when the stored value was zero. The stored value is only ever zero because userspace set it there, so the fallback overrode a deliberate userspace choice. Restore the stored brightness as-is and drop the tracking field. Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
Animated effects can run in either direction, and the direction byte of the effect report is already tracked per zone, but there is no way for userspace to change it, so it stays on the default. Add a "direction" attribute (reverse/forward) and its "direction_index" companion so the animation can be reversed. Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
The Ally X gamepad interface delivers 16 byte input reports: the report id followed by six 16-bit axes and three button bytes. The report struct declared a fourth button byte that does not exist on the wire, so the size check introduced alongside it required 17 bytes and rejected every report. The events then fell through to the generic HID parser, whose descriptor-derived gamepad exposes a different button set, scrambling the buttons seen by userspace. Size the struct to match the wire and pin it to the report size define so the two cannot drift apart again. Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
When the firmware answers neither capability query every effect with a name is exposed, including many the hardware cannot run. The Ally firmware implements no capability query, so userspace was offered the full effect list. Let the hardware description name the supported effects and use it as the fallback, keeping the permissive behavior for devices without a mask. Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
Doubling the multicolor subleds to carry the background color produces a six component multi_intensity with duplicated color indexes, which userspace cannot interpret as an RGB device: the SteamOS color and brightness controls stop working entirely. Present the standard three component RGB device instead. Signed-off-by: Khamunetri Clark <khamunetriclark@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.