Input: xpad - send LED and auth done packets to all Xbox One controllers
authorVicki Pfau <vi@endrift.com>
Tue, 13 May 2025 22:54:01 +0000 (15:54 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 17 May 2025 01:16:42 +0000 (18:16 -0700)
This mirrors what SDL does, and is closer to Windows's behavior as-is.

Signed-off-by: Vicki Pfau <vi@endrift.com>
Link: https://lore.kernel.org/r/20250513225411.2718072-4-vi@endrift.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/joystick/xpad.c

index e5715772608925b03d4a87aadd1338411ff13c2d..7746530da0306172f537016b956c19c819b9aa65 100644 (file)
@@ -676,20 +676,19 @@ static const u8 xboxone_hori_ack_id[] = {
 };
 
 /*
- * This packet is required for most (all?) of the PDP pads to start
- * sending input reports. These pads include: (0x0e6f:0x02ab),
- * (0x0e6f:0x02a4), (0x0e6f:0x02a6).
+ * This packet is sent by default on Windows, and is required for some pads to
+ * start sending input reports, including most (all?) of the PDP. These pads
+ * include: (0x0e6f:0x02ab), (0x0e6f:0x02a4), (0x0e6f:0x02a6).
  */
-static const u8 xboxone_pdp_led_on[] = {
-       GIP_CMD_LED, GIP_OPT_INTERNAL, GIP_SEQ0, GIP_PL_LEN(3), 0x00, GIP_LED_ON, 0x14
-};
+static const u8 xboxone_led_on[] = { GIP_CMD_LED, GIP_OPT_INTERNAL, GIP_SEQ0,
+GIP_PL_LEN(3), 0x00, GIP_LED_ON, 0x14 };
 
 /*
  * This packet is required for most (all?) of the PDP pads to start
  * sending input reports. These pads include: (0x0e6f:0x02ab),
  * (0x0e6f:0x02a4), (0x0e6f:0x02a6).
  */
-static const u8 xboxone_pdp_auth[] = {
+static const u8 xboxone_auth_done[] = {
        GIP_CMD_AUTHENTICATE, GIP_OPT_INTERNAL, GIP_SEQ0, GIP_PL_LEN(2), 0x01, 0x00
 };
 
@@ -726,12 +725,8 @@ static const struct xboxone_init_packet xboxone_init_packets[] = {
        XBOXONE_INIT_PKT(0x045e, 0x02ea, xboxone_s_init),
        XBOXONE_INIT_PKT(0x045e, 0x0b00, xboxone_s_init),
        XBOXONE_INIT_PKT(0x045e, 0x0b00, extra_input_packet_init),
-       XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_led_on),
-       XBOXONE_INIT_PKT(0x0f0d, 0x01b2, xboxone_pdp_led_on),
-       XBOXONE_INIT_PKT(0x20d6, 0xa01a, xboxone_pdp_led_on),
-       XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_auth),
-       XBOXONE_INIT_PKT(0x0f0d, 0x01b2, xboxone_pdp_auth),
-       XBOXONE_INIT_PKT(0x20d6, 0xa01a, xboxone_pdp_auth),
+       XBOXONE_INIT_PKT(0x0000, 0x0000, xboxone_led_on),
+       XBOXONE_INIT_PKT(0x0000, 0x0000, xboxone_auth_done),
        XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
        XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init),
        XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init),