From 690e2f21f25801e7f56aab1e29bb4d2a151b7995 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 19 Dec 2022 09:14:04 -0800
Subject: [PATCH] Don't send Razer devices the Sony third-party query feature
report
Some of them lock up or reset, and the vast majority of devices are not actually game controllers.
Fixes https://github.com/libsdl-org/SDL/issues/6733
(cherry picked from commit 83b29f9ce1fe6caa06769544c3b5f6c10ea97a0f)
---
src/joystick/SDL_joystick.c | 1 -
src/joystick/usb_ids.h | 6 +++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c
index 60026bcc8ab8..39f971bd35ed 100644
--- a/src/joystick/SDL_joystick.c
+++ b/src/joystick/SDL_joystick.c
@@ -2689,7 +2689,6 @@ SDL_bool SDL_ShouldIgnoreJoystick(const char *name, SDL_JoystickGUID guid)
MAKE_VIDPID(0x04d9, 0x8009), /* OBINLB USB-HID Keyboard (Anne Pro II) */
MAKE_VIDPID(0x04d9, 0xa292), /* OBINLB USB-HID Keyboard (Anne Pro II) */
MAKE_VIDPID(0x04d9, 0xa293), /* OBINLB USB-HID Keyboard (Anne Pro II) */
- MAKE_VIDPID(0x1532, 0x0226), /* Razer Huntsman Elite */
MAKE_VIDPID(0x1532, 0x0266), /* Razer Huntsman V2 Analog, non-functional DInput device */
MAKE_VIDPID(0x1532, 0x0282), /* Razer Huntsman Mini Analog, non-functional DInput device */
MAKE_VIDPID(0x26ce, 0x01a2), /* ASRock LED Controller */
diff --git a/src/joystick/usb_ids.h b/src/joystick/usb_ids.h
index dd390f1d26e4..a47f970aa767 100644
--- a/src/joystick/usb_ids.h
+++ b/src/joystick/usb_ids.h
@@ -48,6 +48,11 @@
#define USB_VENDOR_VALVE 0x28de
#define USB_VENDOR_ZEROPLUS 0x0c12
+// Most Razer devices are not game controllers, and some of them lock up or reset
+// when we send them the Sony third-party query feature report, so don't include that
+// vendor here. Instead add devices as appropriate to controller_type.c
+// Reference: https://github.com/libsdl-org/SDL/issues/6733
+// https://github.com/libsdl-org/SDL/issues/6799
#define SONY_THIRDPARTY_VENDOR(X) \
(X == USB_VENDOR_DRAGONRISE || \
X == USB_VENDOR_HORI || \
@@ -57,7 +62,6 @@
X == USB_VENDOR_POWERA || \
X == USB_VENDOR_POWERA_ALT || \
X == USB_VENDOR_QANBA || \
- X == USB_VENDOR_RAZER || \
X == USB_VENDOR_SHANWAN || \
X == USB_VENDOR_SHANWAN_ALT || \
X == USB_VENDOR_THRUSTMASTER || \