summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Yocom <nate@yocom.org>2022-09-28 18:18:54 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2022-09-28 18:31:36 -0700
commitf45aaae6204d1c7b0200ce043102ec84d805ac34 (patch)
tree07bd77b42f3c4a1babc2c5afa1aab3194cb31199
parentd218fe04335183518009f29f3270ec4dde1b66a2 (diff)
Input: xpad - add X-Box Adaptive XBox button
Adaptive controller sets 0x02 bit for this button, all others set 0x01 so presence of either is used for BTN_MODE. Signed-off-by: Nate Yocom <nate@yocom.org> Tested-by: Bastien Nocera <hadess@hadess.net> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com Link: https://lore.kernel.org/r/20220908173930.28940-3-nate@yocom.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r--drivers/input/joystick/xpad.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 1058ed28be49..c66ae73523d2 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -969,7 +969,8 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
if (data[1] == (GIP_OPT_ACK | GIP_OPT_INTERNAL))
xpadone_ack_mode_report(xpad, data[2]);
- input_report_key(dev, BTN_MODE, data[4] & BIT(0));
+ input_report_key(dev, BTN_MODE, data[4] & GENMASK(1, 0));
+ input_sync(dev);
do_sync = true;
} else if (data[0] == GIP_CMD_FIRMWARE) {