hid: topre: Add driver fixing report descriptor
authorHarry Stern <harry@harrystern.net>
Sun, 11 Sep 2022 00:36:13 +0000 (20:36 -0400)
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>
Tue, 20 Sep 2022 11:16:25 +0000 (12:16 +0100)
commita109d5c45b3d6728b9430716b915afbe16eef27c
treed17e024db9f3c8c9386b2c1154da94e71c48936f
parenta1f764268f3390406f4dcbe3d2f537f2424f22ca
hid: topre: Add driver fixing report descriptor

The Topre REALFORCE R2 firmware incorrectly reports that interface
descriptor number 1, input report descriptor 2's events are array events
rather than variable events. That particular report descriptor is used
to report keypresses when there are more than 6 keys held at a time.
This bug prevents events from this interface from being registered
properly, so only 6 keypresses (from a different interface) can be
registered at once, rather than full n-key rollover.

This commit fixes the bug by setting the correct value in a report_fixup
function.

The original bug report can be found here:
Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
Thanks to Benjamin Tissoires for diagnosing the issue with the report
descriptor.

Signed-off-by: Harry Stern <harry@harrystern.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
drivers/hid/Kconfig
drivers/hid/Makefile
drivers/hid/hid-ids.h
drivers/hid/hid-topre.c [new file with mode: 0644]