|
@@ -229,6 +229,7 @@ static const struct xpad_device {
|
|
|
{ 0x0e6f, 0x0213, "Afterglow Gamepad for Xbox 360", 0, XTYPE_XBOX360 },
|
|
|
{ 0x0e6f, 0x021f, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 },
|
|
|
{ 0x0e6f, 0x0246, "Rock Candy Gamepad for Xbox One 2015", 0, XTYPE_XBOXONE },
|
|
|
+ { 0x0e6f, 0x02ab, "PDP Controller for Xbox One", 0, XTYPE_XBOXONE },
|
|
|
{ 0x0e6f, 0x0301, "Logic3 Controller", 0, XTYPE_XBOX360 },
|
|
|
{ 0x0e6f, 0x0346, "Rock Candy Gamepad for Xbox One 2016", 0, XTYPE_XBOXONE },
|
|
|
{ 0x0e6f, 0x0401, "Logic3 Controller", 0, XTYPE_XBOX360 },
|
|
@@ -475,6 +476,22 @@ static const u8 xboxone_hori_init[] = {
|
|
|
0x00, 0x00, 0x00, 0x80, 0x00
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * This packet is required for some of the PDP pads to start
|
|
|
+ * sending input reports. One of those pads is (0x0e6f:0x02ab).
|
|
|
+ */
|
|
|
+static const u8 xboxone_pdp_init1[] = {
|
|
|
+ 0x0a, 0x20, 0x00, 0x03, 0x00, 0x01, 0x14
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * This packet is required for some of the PDP pads to start
|
|
|
+ * sending input reports. One of those pads is (0x0e6f:0x02ab).
|
|
|
+ */
|
|
|
+static const u8 xboxone_pdp_init2[] = {
|
|
|
+ 0x06, 0x20, 0x00, 0x02, 0x01, 0x00
|
|
|
+};
|
|
|
+
|
|
|
/*
|
|
|
* A specific rumble packet is required for some PowerA pads to start
|
|
|
* sending input reports. One of those pads is (0x24c6:0x543a).
|
|
@@ -505,6 +522,8 @@ static const struct xboxone_init_packet xboxone_init_packets[] = {
|
|
|
XBOXONE_INIT_PKT(0x0e6f, 0x0165, xboxone_hori_init),
|
|
|
XBOXONE_INIT_PKT(0x0f0d, 0x0067, xboxone_hori_init),
|
|
|
XBOXONE_INIT_PKT(0x0000, 0x0000, xboxone_fw2015_init),
|
|
|
+ XBOXONE_INIT_PKT(0x0e6f, 0x02ab, xboxone_pdp_init1),
|
|
|
+ XBOXONE_INIT_PKT(0x0e6f, 0x02ab, xboxone_pdp_init2),
|
|
|
XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
|
|
|
XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init),
|
|
|
XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init),
|