summaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorBrett Raye <braye@fastmail.com>2023-11-02 18:10:38 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-12-20 17:01:58 +0100
commitc38f7b0f554f0403eb90516332a9b70a64cadc75 (patch)
treeef335877b4425593017748db07cc8761e95a3787 /security
parent6b3507b8ea55aae5377aaccd6d9cb9f6e0204136 (diff)
downloadlinux-stable-c38f7b0f554f0403eb90516332a9b70a64cadc75.tar.gz
linux-stable-c38f7b0f554f0403eb90516332a9b70a64cadc75.tar.bz2
linux-stable-c38f7b0f554f0403eb90516332a9b70a64cadc75.zip
HID: glorious: fix Glorious Model I HID report
[ Upstream commit a5e913c25b6b2b6ae02acef6d9400645ac03dfdf ] The Glorious Model I mouse has a buggy HID report descriptor for its keyboard endpoint (used for programmable buttons). For report ID 2, there is a mismatch between Logical Minimum and Usage Minimum in the array that reports keycodes. The offending portion of the descriptor: (from hid-decode) 0x95, 0x05, // Report Count (5) 30 0x75, 0x08, // Report Size (8) 32 0x15, 0x00, // Logical Minimum (0) 34 0x25, 0x65, // Logical Maximum (101) 36 0x05, 0x07, // Usage Page (Keyboard) 38 0x19, 0x01, // Usage Minimum (1) 40 0x29, 0x65, // Usage Maximum (101) 42 0x81, 0x00, // Input (Data,Arr,Abs) 44 This bug shifts all programmed keycodes up by 1. Importantly, this causes "empty" array indexes of 0x00 to be interpreted as 0x01, ErrorRollOver. The presence of ErrorRollOver causes the system to ignore all keypresses from the endpoint and breaks the ability to use the programmable buttons. Setting byte 41 to 0x00 fixes this, and causes keycodes to be interpreted correctly. Also, USB_VENDOR_ID_GLORIOUS is changed to USB_VENDOR_ID_SINOWEALTH, and a new ID for Laview Technology is added. Glorious seems to be white-labeling controller boards or mice from these vendors. There isn't a single canonical vendor ID for Glorious products. Signed-off-by: Brett Raye <braye@fastmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'security')
0 files changed, 0 insertions, 0 deletions