On Fri, Aug 08, 2014 at 11:15:00AM +0200, Fredrik Hallenberg wrote: > Hi, > > On my Corsair K70 keyboard, when pressing some key and then the backslash > key (KEY_BACKSLASH) in rapid succession the backslash character will be > repeated three times. > > This bug is discussed on the Corsair forums, and it seems the exact same > thing also happens with Gigabyte Osmium and QPAD MK85, all keyboards > supporting n-key rollover. > > I believe the root cause of this is that the keyboard reports all keys > including both HID keys 0x31 and 0x32 which are both mapped to > KEY_BACKSLASH in hid-input.c. I am using a nordic keyboard meaning > KEY_BACKSLASH is labeled "apostrophe" and that HID key 0x32 is reported. A > US keyboard has a backslash key which should report 0x31. > > I have added some traces before the input_event call at the end of > hidinput_report_event. When pressing A key and then apostrophe something > like this is seen (omitting all inactive keys): > > VALUE 1 CODE 30 HID 0x4 > VALUE 0 CODE 43 HID 0x31 > VALUE 0 CODE 43 HID 0x32 > Output: a > > VALUE 1 CODE 30 HID 0x4 > VALUE 0 CODE 43 HID 0x31 > VALUE 1 CODE 43 HID 0x32 > Output: ' > > VALUE 0 CODE 30 HID 0x4 > VALUE 0 CODE 43 HID 0x31 > VALUE 1 CODE 43 HID 0x32 > Output: ' > > VALUE 0 CODE 30 HID 0x4 > VALUE 0 CODE 43 HID 0x31 > VALUE 1 CODE 43 HID 0x32 > Output: ' > > VALUE 0 CODE 30 HID 0x4 > VALUE 0 CODE 43 HID 0x31 > VALUE 0 CODE 43 HID 0x32 > > So the fact that 0x31 is inactive will cause bad release events on key 43 > to be sent. > > I have made a simple patch that tracks which of the two variants is active > and ignores the other one. It works but I don't have much knowledge on HID > input so before posting it would like to know if someone has input on how > to do a cleaner fix. I am happy to help with testing or implementation if I > am able. Interesting, but I think the linux-input@xxxxxxxxxxxxxxx mailing list would be best for this, as that is where the HID and other input developers hang out at. It's not a "generic" USB issue that we can help you with here, sorry. So try the other list, you should have better luck there. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html