Re: [PATCH 00/15] HID: hid-oxp: fix and extend X2-family controller support
From: Derek J. Clark
Date: Thu Sep 10 2026 - 16:24:37 EST
On 9/9/26 20:21, Andrei Aldea wrote:
This 15-patch series fixes existing hid-oxp configuration and RGB issues
and adds controller and lighting support for ONEXPLAYER X2-family devices,
including the ONEXPLAYER 3 and X2 Mini Pro.
The fixes correct the M1/M2 defaults, validate input reports and RGB state,
correct brightness and color scaling, serialize RGB updates, and make
configuration state and delayed-work lifetime local to each HID interface.
They also handle controller reinitialization across system suspend.
The X2 support selects configuration interface 2, supplies the required
three-page button map, and adds the Gen3 protocol for joystick-ring zones
1, 2 and 7. The Guide button and rear logo receive independent multicolor
LED devices using zones 5 and 6, with monocolor and breathing effects.
The final patch documents the controller and lighting sysfs ABI.
Patches 1-10 contain behavioral fixes. Patch 11 groups existing declarations.
Patch 12 adds X2 button maps and interface selection; patch 13 provides the
shared LED representation; patches 14-15 add X2 lighting support.
This series is based on mainline commit
50d05c7c76c96b90462f24debacca971d2e86713.
Testing:
I tested this series on an ONEXPLAYER 3 running Bazzite 44 with kernel
7.2.0-ogc6.1.fc44.x86_64. Testing covered front controls, rear paddles,
Steam and Quick Access behavior, independent RGB effects, brightness/off
controls, and suspend/resume restoration. I also built the module with
W=1. X2 Mini Pro hardware testing remains outstanding.
All 15 patches apply cleanly to the stated base and pass git diff --check
and checkpatch.pl with zero errors and zero warnings.
Development and review:
https://github.com/OpenGamingCollective/linux-unstable/pull/13
I used LLM assistance for protocol analysis, implementation,
documentation, code review, and test orchestration.
Hi Andrei,
Thank you for this, a lot of really good and needed changes are present here that will greatly improve the driver and it takes a load off my plate.
For the patches with Fixes tags please add Cc: stable@xxxxxxxxxxxxxxx in v2. I'd also revisit which patch some of them fix and make sure the tags are correct, RGB and buttons were added in separate patches.
Thanks,
Derek.
Andrei Aldea (15):
HID: hid-oxp: fix default M1 and M2 key mappings
HID: hid-oxp: validate input report lengths before decoding
HID: hid-oxp: retain fractional brightness when reading RGB status
HID: hid-oxp: reject invalid Gen2 RGB status values
HID: hid-oxp: fix multicolor LED intensity scaling
HID: hid-oxp: serialize complete RGB updates
HID: hid-oxp: select brightness policy for the new RGB effect
HID: hid-oxp: stop configuration work during teardown
HID: hid-oxp: keep configuration state per HID interface
HID: hid-oxp: handle controller reinitialization across suspend
HID: hid-oxp: group declarations and protocol definitions
HID: hid-oxp: support three-page button maps on X2 controllers
HID: hid-oxp: represent RGB LEDs with a common array
HID: hid-oxp: add Gen3 joystick ring RGB support
HID: hid-oxp: add X2 auxiliary RGB zones
.../ABI/testing/sysfs-driver-hid-oxp | 196 ++
MAINTAINERS | 1 +
drivers/hid/hid-oxp.c | 1743 ++++++++++++++---
3 files changed, 1623 insertions(+), 317 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-driver-hid-oxp
base-commit: 50d05c7c76c96b90462f24debacca971d2e86713