On Mon, Aug 17, 2020 at 12:03:26PM +0200, Jiri Kosina wrote: > On Wed, 29 Jul 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. > > > > 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? > > > > Signed-off-by: Frank Yang <puilp0502@xxxxxxxxx> > > --- > > drivers/hid/Kconfig | 6 ++++ > > drivers/hid/Makefile | 1 + > > drivers/hid/hid-ids.h | 2 ++ > > drivers/hid/hid-varmilo.c | 58 +++++++++++++++++++++++++++++++++++++++ > > Hi Frank, > > thanks for the patch. > > Given the fact that the device presents itself with CYPRESS VID (0x04b4, > 'officially' assigned to cypress), can we avoid creating extra driver, and > rather extend hid-cypress.c with this quirk, please? > > Thanks, > > -- > Jiri Kosina > SUSE Labs > Hi Jiri, thanks for your comment. As you stated, I have sent the updated patch which extends hid-cypress.c instead of creating new driver. Thanks, Frank