On Fri, 21 Aug 2020, Frank Yang wrote: > The Varmilo VA104M Keyboard (04b4:07b1, reported as Varmilo Z104M) > exposes media control hotkeys as a USB HID consumer control device, but > these keys do not work in the current (5.8-rc1) kernel due to the > incorrect HID report descriptor. Fix the problem by modifying the > internal HID report descriptor. > > More specifically, the keyboard report descriptor specifies the > logical boundary as 572~10754 (0x023c ~ 0x2a02) while the usage > boundary is specified as 0~10754 (0x00 ~ 0x2a02). This results in an > incorrect interpretation of input reports, causing inputs to be ignored. > By setting the Logical Minimum to zero, we align the logical boundary > with the Usage ID boundary. Thanks, I have now applied the patch. > Some notes: > > * There seem to be multiple variants of the VA104M keyboard. This > patch specifically targets 04b4:07b1 variant. > > * The device works out-of-the-box on Windows platform with the generic > consumer control device driver (hidserv.inf). This suggests that > Windows either ignores the Logical Minimum/Logical Maximum or > interprets the Usage ID assignment differently from the linux > implementation; Maybe there are other devices out there that only > works on Windows due to this problem? This is not the first time I came across this issue, but I'd find it rather suprising if wondows HID driver would just be completely ignoring LogicalMin/LogicalMax values ... perhaps it treats some values as specific? -- Jiri Kosina SUSE Labs