Re: [PATCH v3 2/3] Input: joystick: xpad: Add X-Box Adaptive Controller Layer button

From: Bastien Nocera
Date: Wed Aug 24 2022 - 11:36:44 EST


On Wed, 2022-08-17 at 12:37 +0200, Bastien Nocera wrote:
> On Sat, 2022-08-13 at 11:53 -0700, Nate Yocom wrote:
> > Adds a new quirk for controllers that have a Layer button which has
> > 4
> > states, reflected as an ABS_MISC axis with 4 values.
>
> It's called the "Profile Button" in the official documentation:
> https://support.xbox.com/en-US/help/account-profile/accessibility/get-to-know-adaptive-controller
> so best to call it that.
>
> I wonder we have any other examples of profile handling in input
> drivers. The xpadneo driver implements the profiles in the kernel
> driver directly.
>
> Benjamin?

After speaking to Benjamin, it was clear that ABS_MISC wasn't the right
absolute axis to use.

I think that adding a new ABS_* axes in include/uapi/linux/input-event-
codes.h would be the best, for example ABS_PROFILE as 0x21.

Dmitry, what do you think?

The idea here is to encode a hardware controlled switch that has 4
possible values. Its state will be sent with every input event in order
for user-space to (maybe) apply a specific profile to the events.

This would also be used by the XBox Elite 2 controller driver.

Cheers