Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 282bf1fe authored by Trent Lloyd's avatar Trent Lloyd Committed by Jiri Kosina
Browse files

HID: usbhid: quirks for Corsair RGB keyboard & mice (K70R, K95RGB, M65RGB, K70RGB, K65RGB)



These devices feature multiple interfaces/endpoints: a legacy BIOS/boot
interface (endpoint 0x81), as well as 2 corsair-specific keyboard interfaces
(endpoint 0x82, 0x83 IN/0x03 OUT) and an RGB LED control interface (endpoint
0x84 IN/0x04 OUT)

Because the extra 3 interfaces are not of subclass USB_INTERFACE_SUBCLASS_BOOT,
HID_QUIRK_NOGET is not automatically set on them and a 10s timeout per-endpoint
(30s per device) occurs initialising reports on boot.  We configure
HID_QUIRK_NO_INIT_REPORTS for these devices.

Additionally the left-side G1-G18 macro keys on the K95RGB generate output on
the un-opened 0x82/0x83 endpoints which causes the keyboard to stop responding
waiting for this event to be collected.  We enable HID_QUIRK_ALWAYS_POLL to
prevent this situation from occurring.

Signed-off-by: default avatarTrent Lloyd <trent@lloyd.id.au>
Tested-by: default avatarSUGNIAUX Wilfried <wsu@ppharm2k20.net>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 95d1c895
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -258,6 +258,13 @@
#define USB_VENDOR_ID_CORSAIR		0x1b1c
#define USB_DEVICE_ID_CORSAIR_K90	0x1b02

#define USB_VENDOR_ID_CORSAIR           0x1b1c
#define USB_DEVICE_ID_CORSAIR_K70R      0x1b09
#define USB_DEVICE_ID_CORSAIR_K95RGB    0x1b11
#define USB_DEVICE_ID_CORSAIR_M65RGB    0x1b12
#define USB_DEVICE_ID_CORSAIR_K70RGB    0x1b13
#define USB_DEVICE_ID_CORSAIR_K65RGB    0x1b17

#define USB_VENDOR_ID_CREATIVELABS	0x041e
#define USB_DEVICE_ID_PRODIKEYS_PCMIDI	0x2801

+5 −0
Original line number Diff line number Diff line
@@ -71,6 +71,11 @@ static const struct hid_blacklist {
	{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE, HID_QUIRK_ALWAYS_POLL },
	{ USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K70R, HID_QUIRK_NO_INIT_REPORTS },
	{ USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_M65RGB, HID_QUIRK_NO_INIT_REPORTS },
	{ USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K95RGB, HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL },
	{ USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K70RGB, HID_QUIRK_NO_INIT_REPORTS },
	{ USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K65RGB, HID_QUIRK_NO_INIT_REPORTS },
	{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU, HID_QUIRK_MULTI_INPUT },
	{ USB_VENDOR_ID_ELAN, HID_ANY_ID, HID_QUIRK_ALWAYS_POLL },