From 690e2f21f25801e7f56aab1e29bb4d2a151b7995 Mon Sep 17 00:00:00 2001 From: Sam Lantinga 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 60026bcc8..39f971bd3 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 dd390f1d2..a47f970aa 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 || \