HID: lenovo: Add support for ThinkPad TrackPoint Keyboard II
authorValdikSS <iam@valdikss.org.ru>
Sun, 13 Feb 2022 21:49:22 +0000 (22:49 +0100)
committerJiri Kosina <jkosina@suse.cz>
Mon, 2 May 2022 15:49:44 +0000 (17:49 +0200)
commit24401f291dcc4f2c18b9e2f65763cbaadc7a1528
tree5527f608903ebd68212bfae5b854a827411d2a95
parent5e206459f670b579da9b7861a0f3ce3b989a68b6
HID: lenovo: Add support for ThinkPad TrackPoint Keyboard II

This keyboard has two modes: regular HID and a native mode, which is used
in Windows driver. Native mode disables (poor) middle mouse button
scrolling emulation and reports middle button and scrolling events with a
custom report ID, which could be better handled in the driver.

This commit adds functional button mapping and native scrolling support.

HID collection in Bluetooth mode for custom report ID=5 is broken and
is patched upon connection. The collection initially contains incorrect
Usage Minimum/Usage Maximum numbers and, more importantly, marks Input
as Variable, not Array, while reporting values as in Array.

The keyboard is very similar to Compact USB/Bluetooth Keyboard with
TrackPoint, that's why this patch reuses all of cptkbd functions, except
for input mapping.

Signed-off-by: Florian Klink <flokli@flokli.de>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-ids.h
drivers/hid/hid-lenovo.c