Skip to content

bpf: add XBox Elite 2 wireless controller fix

Benjamin Tissoires requested to merge bentiss/udev-hid-bpf:wip/xbox-elite-2 into main

When using the XBox Wireless Controller Elite 2 over Bluetooth, the device exports the paddle on the back of the device as a single bitfield value of usage "Assign Selection".

The kernel doesn't process those usages properly and report KEY_UNKNOWN for it.

SDL doesn't know how to interprete that KEY_UNKNOWN and thus ignores the paddles.

Given that over USB the kernel uses BTN_TRIGGER_HAPPY[5-8], we can tweak the report descriptor to make the kernel interprete it properly:

  • we need an application collection of gamepad (so we have to close the current Consumer Control one)
  • we need to change the usage to be buttons from 0x15 to 0x18

Link: https://lore.kernel.org/linux-input/CAEQPD4SZCFf5vj+Dyji9UzOg7M+3GPMRgTesUb2d9w8_Gm9XZg@mail.gmail.com/T/#t

Merge request reports