Re: [PATCH 3/6] Input: Add ABS_CLUTCH, HANDBRAKE, and SHIFTER
From: Vicki Pfau <hidden>
Date: 2025-08-11 23:01:03
On 8/11/25 3:56 PM, Dmitry Torokhov wrote:
On Thu, Aug 07, 2025 at 09:30:10PM -0700, Vicki Pfau wrote:quoted
Add new absolute axes for racing game controllers Signed-off-by: Vicki Pfau <redacted> --- drivers/hid/hid-debug.c | 16 +++++++++------- include/uapi/linux/input-event-codes.h | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-)diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c index 264eefaed08fb..534df8e4082da 100644 --- a/drivers/hid/hid-debug.c +++ b/drivers/hid/hid-debug.c@@ -3505,13 +3505,15 @@ static const char *absolutes[ABS_CNT] = { [ABS_RY] = "Ry", [ABS_RZ] = "Rz", [ABS_THROTTLE] = "Throttle", [ABS_RUDDER] = "Rudder", [ABS_WHEEL] = "Wheel", [ABS_GAS] = "Gas", - [ABS_BRAKE] = "Brake", [ABS_HAT0X] = "Hat0X", - [ABS_HAT0Y] = "Hat0Y", [ABS_HAT1X] = "Hat1X", - [ABS_HAT1Y] = "Hat1Y", [ABS_HAT2X] = "Hat2X", - [ABS_HAT2Y] = "Hat2Y", [ABS_HAT3X] = "Hat3X", - [ABS_HAT3Y] = "Hat 3Y", [ABS_PRESSURE] = "Pressure", - [ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt", - [ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "ToolWidth", + [ABS_BRAKE] = "Brake", [ABS_CLUTCH] = "Clutch", + [ABS_HANDBRAKE] = "Handbrake", [ABS_SHIFTER] = "Shifter", + [ABS_HAT0X] = "Hat0X", [ABS_HAT0Y] = "Hat0Y", + [ABS_HAT1X] = "Hat1X", [ABS_HAT1Y] = "Hat1Y", + [ABS_HAT2X] = "Hat2X", [ABS_HAT2Y] = "Hat2Y", + [ABS_HAT3X] = "Hat3X", [ABS_HAT3Y] = "Hat3Y", + [ABS_PRESSURE] = "Pressure", [ABS_DISTANCE] = "Distance", + [ABS_TILT_X] = "XTilt", [ABS_TILT_Y] = "YTilt", + [ABS_TOOL_WIDTH] = "ToolWidth", [ABS_VOLUME] = "Volume", [ABS_PROFILE] = "Profile", [ABS_MISC] = "Misc", [ABS_MT_SLOT] = "MTSlot",diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h index 08cb157ab5936..195139e895ffb 100644 --- a/include/uapi/linux/input-event-codes.h +++ b/include/uapi/linux/input-event-codes.h@@ -859,6 +859,9 @@ #define ABS_WHEEL 0x08 #define ABS_GAS 0x09 #define ABS_BRAKE 0x0a +#define ABS_CLUTCH 0x0b +#define ABS_HANDBRAKE 0x0c +#define ABS_SHIFTER 0x0dWe have BTN_GEAR_UP and BTN_GEAR_DOWN, can they be used?
The controller reports absolute values, not relative. If it were relative, BTN_GEAR_UP and BTN_GEAR_DOWN might make sense. That said, I've been rethinking how to do mapping on both the wheel and flight stick, so I'm probably going go back to the drawing board on those. Feedback would still be nice, but I think the only one of these that might be mergeable as is is patch 1 (patch 2 was made against 6.16 by accident and does not apply to master). The shifter on Windows presents as individual buttons, one per gear, which is weird...but it's what games expect. Likewise, the dial presents as two buttons for the two relative values. I thought these methods were nonsensical (and I still do), but for compatibility reasons it might be better.
Thanks.