• Trent Lloyd's avatar
    HID: usbhid: quirks for Corsair RGB keyboard & mice (K70R, K95RGB, M65RGB, K70RGB, K65RGB) · e5969f73
    Trent Lloyd authored
    commit 282bf1fe upstream.
    
    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>
    [bwh: Backported to 3.16: adjust context]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    e5969f73
hid-quirks.c 16.8 KB