On Sun, 7 Feb 2021, Benjamin Moody wrote: > From: Benjamin Moody <bmoody@xxxxxxxxxxxxxx> > > A number of USB keyboards, using the Semitek firmware, are capable of > handling arbitrary N-key rollover, but due to a buggy report > descriptor, keys beyond the sixth cannot be detected by the generic > HID driver. > > There are numerous hardware variants sold by several vendors, mostly > using generic names like "GK61" for the 61-key version. These > keyboards are sometimes known collectively as the "GK6X" series. > > The keyboard has three USB interfaces. Interface 0 uses the standard > HID boot protocol, limited to eight modifier keys and six normal keys; > interface 2 uses a custom report format that permits any number of > keys. If more than six keys are pressed simultaneously, the first six > are reported via interface 0 while subsequent keys are reported via > interface 2. > > (Interface 1 uses a custom protocol for reprogramming the keyboard; > this can be controlled through userspace tools and is not of concern > for the present driver.) > > The report descriptor for interface 2, however, is incorrect (for > report ID 0x04, the input field is marked as "array" rather than > "variable".) The descriptor appears to be correct in other respects, > so we simply replace the incorrect byte before parsing the descriptor. > > Signed-off-by: Benjamin Moody <bmoody@xxxxxxxxxxxxxx> Applied, thanks. -- Jiri Kosina SUSE Labs