[PATCH v3] Input: xpad - add Voyetra Turtle Beach PC Rematch Gamepad
From: Dongxu Su <hidden>
Date: 2026-08-03 06:47:41
Also in:
stable
Subsystem:
input (keyboard, mouse, joystick, touchscreen) drivers, the rest · Maintainers:
Dmitry Torokhov, Linus Torvalds
Add support for the Voyetra Turtle Beach PC Rematch Gamepad, a triple-mode (wired, 2.4G wireless, Bluetooth) PC game controller. The VID 0x10F5 is already in the XPAD_XBOXONE_VENDOR whitelist (covering the GIP mode PIDs 0x6015 and 0x6016), but XInput support was missing. Add XPAD_XBOX360_VENDOR(0x10F5) to xpad_table to enable XInput mode (both wired and wireless), and add xpad_device entries for all four PIDs to give them human-readable names: - 0x6013: XInput wired (XTYPE_XBOX360) - 0x6014: XInput wireless 2.4G (XTYPE_XBOX360) - 0x6015: GIP wired (XTYPE_XBOXONE) - 0x6016: GIP wireless 2.4G (XTYPE_XBOXONE) The 2.4G wireless dongle operates as a transparent bridge presenting itself as a standard wired XInput device (Protocol 1), not using the proprietary Microsoft multi-controller receiver format, so XTYPE_XBOX360 is used instead of XTYPE_XBOX360W. Signed-off-by: Dongxu Su <redacted> --- Changes in v3: - Fix XTYPE_XBOX360W -> XTYPE_XBOX360 for PID 0x6014 (wireless dongle uses Protocol 1, not multi-controller receiver format) - Reorder xpad_device[] entries: place 0x60xx PIDs before 0x70xx PIDs to comply with the array's VID/PID sorting requirement - Add changelog (was missing in v2) Changes in v2: - Fix base64-encoded email body that corrupted the patch (v1) - Fix file path from xpad.c to drivers/input/joystick/xpad.c (v1) --- drivers/input/joystick/xpad.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index feb8f36..32720e9 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c@@ -265,6 +265,10 @@ static const struct xpad_device { { 0x102c, 0xff0c, "Joytech Wireless Advanced Controller", 0, XTYPE_XBOX }, { 0x1038, 0x1430, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 }, { 0x1038, 0x1431, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 }, + { 0x10f5, 0x6013, "PC Rematch Gamepad", 0, XTYPE_XBOX360 }, + { 0x10f5, 0x6014, "PC Rematch Gamepad (Wireless)", 0, XTYPE_XBOX360 }, + { 0x10f5, 0x6015, "PC Rematch Gamepad", 0, XTYPE_XBOXONE }, + { 0x10f5, 0x6016, "PC Rematch Gamepad (Wireless)", 0, XTYPE_XBOXONE }, { 0x10f5, 0x7005, "Turtle Beach Recon Controller", 0, XTYPE_XBOXONE }, { 0x10f5, 0x7008, "Turtle Beach Recon Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE }, { 0x10f5, 0x7073, "Turtle Beach Stealth Ultra Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
@@ -522,6 +526,7 @@ static const struct usb_device_id xpad_table[] = { XPAD_XBOXONE_VENDOR(0x0f0d), /* Hori controllers */ XPAD_XBOX360_VENDOR(0x1038), /* SteelSeries controllers */ XPAD_XBOXONE_VENDOR(0x10f5), /* Turtle Beach Controllers */ + XPAD_XBOX360_VENDOR(0x10f5), /* Turtle Beach Controllers */ XPAD_XBOX360_VENDOR(0x11c9), /* Nacon GC100XF */ XPAD_XBOX360_VENDOR(0x11ff), /* PXN V900 */ XPAD_XBOX360_VENDOR(0x1209), /* Ardwiino Controllers */
--
2.47.1.windows.1