Thread (1 message) 1 message, 1 author, 2021-05-21

Re: [PATCH] [v5] Input: Add "Select" button to Microsoft Xbox One controller.

From: Bastien Nocera <hadess@hadess.net>
Date: 2021-05-21 07:59:55
Also in: lkml

On Thu, 2021-05-13 at 23:10 -0700, Chris Ye wrote:
+Dmitry. 

On Wed, May 12, 2021 at 11:21 AM Chris Ye [off-list ref] wrote:
quoted
Hi Benjamin,
     It seems I don't have any further comments on patch v5, do you
think we can land the patch in the next kernel release? Please
advise
if there are any further comments.
Thank you!

Regards,
Chris

On Wed, May 5, 2021 at 9:57 AM Chris Ye [off-list ref] wrote:
quoted
Hi Bastien,
       Can you please take a look at the patch v5, which has
restored
quoted
the same tab formatting?
Patch looks fine to me.

Reviewed-by: Bastien Nocera <hadess@hadess.net>
quoted
quoted
Thanks! Regards,
Chris

On Tue, Apr 13, 2021 at 7:12 PM Chris Ye [off-list ref] wrote:
quoted
Add "Select" button input capability and input event mapping
for
Microsoft Xbox One controller. From product site this is also
referred as
quoted
quoted
"Share" button.
Fixed Microsoft Xbox One controller select button not working
under USB
quoted
quoted
connection.

Signed-off-by: Chris Ye <redacted>
---
  drivers/input/joystick/xpad.c | 6 ++++++
  1 file changed, 6 insertions(+)
diff --git a/drivers/input/joystick/xpad.c
b/drivers/input/joystick/xpad.c
quoted
quoted
index 9f0d07dcbf06..cfbf1747b205 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -79,6 +79,7 @@
  #define MAP_DPAD_TO_BUTTONS            (1 << 0)
  #define MAP_TRIGGERS_TO_BUTTONS                (1 << 1)
  #define MAP_STICKS_TO_NULL             (1 << 2)
+#define MAP_SELECT_BUTTON              (1 << 3)
  #define DANCEPAD_MAP_CONFIG    (MAP_DPAD_TO_BUTTONS |       
   
      \
quoted
quoted
                                 MAP_TRIGGERS_TO_BUTTONS |
MAP_STICKS_TO_NULL)
quoted
quoted
@@ -130,6 +131,7 @@ static const struct xpad_device {
         { 0x045e, 0x02e3, "Microsoft X-Box One Elite pad", 0,
XTYPE_XBOXONE },
quoted
quoted
         { 0x045e, 0x02ea, "Microsoft X-Box One S pad", 0,
XTYPE_XBOXONE },
quoted
quoted
         { 0x045e, 0x0719, "Xbox 360 Wireless Receiver",
MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W },
quoted
quoted
+       { 0x045e, 0x0b12, "Microsoft Xbox One X pad",
MAP_SELECT_BUTTON, XTYPE_XBOXONE },
quoted
quoted
         { 0x046d, 0xc21d, "Logitech Gamepad F310", 0,
XTYPE_XBOX360 },
quoted
quoted
         { 0x046d, 0xc21e, "Logitech Gamepad F510", 0,
XTYPE_XBOX360 },
quoted
quoted
         { 0x046d, 0xc21f, "Logitech Gamepad F710", 0,
XTYPE_XBOX360 },
quoted
quoted
@@ -862,6 +864,8 @@ static void xpadone_process_packet(struct
usb_xpad *xpad, u16 cmd, unsigned char
quoted
quoted
         /* menu/view buttons */
         input_report_key(dev, BTN_START,  data[4] & 0x04);
         input_report_key(dev, BTN_SELECT, data[4] & 0x08);
+       if (xpad->mapping & MAP_SELECT_BUTTON)
+               input_report_key(dev, KEY_RECORD, data[22] &
0x01);
quoted
quoted
         /* buttons A,B,X,Y */
         input_report_key(dev, BTN_A,    data[4] & 0x10);
@@ -1672,6 +1676,8 @@ static int xpad_init_input(struct
usb_xpad
*xpad)
quoted
quoted
             xpad->xtype == XTYPE_XBOXONE) {
                 for (i = 0; xpad360_btn[i] >= 0; i++)
                         input_set_capability(input_dev,
EV_KEY,
xpad360_btn[i]);
quoted
quoted
+               if (xpad->mapping & MAP_SELECT_BUTTON)
+                       input_set_capability(input_dev, EV_KEY,
KEY_RECORD);
quoted
quoted
         } else {
                 for (i = 0; xpad_btn[i] >= 0; i++)
                         input_set_capability(input_dev,
EV_KEY,
xpad_btn[i]);
quoted
quoted
--
2.31.1.295.g9ea45b61b8-goog
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help