From c70650f9f5fe91c54dbfc26b6a3da13cbbd97455 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 2 Jun 2015 09:13:59 -0400 Subject: [PATCH] Fix middle button issues on external Lenovo keyboards (rhbz 1225563) --- ...lenovo-set-INPUT_PROP_POINTING_STICK.patch | 52 +++++++++++++++++++ kernel.spec | 9 ++++ 2 files changed, 61 insertions(+) create mode 100644 HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch diff --git a/HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch b/HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch new file mode 100644 index 000000000..76419cc52 --- /dev/null +++ b/HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch @@ -0,0 +1,52 @@ +From: Andreas Fleig +Date: Thu, 23 Apr 2015 10:25:58 +0200 +Subject: [PATCH] HID: lenovo: set INPUT_PROP_POINTING_STICK + +Set flags INPUT_PROP_POINTER and INPUT_PROP_POINTING_STICK for the trackpoint +integrated in Lenovo USB and Bluetooth keyboards. Libinput checks these flags +to enable features such as middle-button-scrolling by default. + +Signed-off-by: Andreas Fleig +Reviewed-by: Benjamin Tissoires +Signed-off-by: Jiri Kosina +--- + drivers/hid/hid-lenovo.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c +index c4c3f0952521..78608d646007 100644 +--- a/drivers/hid/hid-lenovo.c ++++ b/drivers/hid/hid-lenovo.c +@@ -762,6 +762,24 @@ static void lenovo_remove(struct hid_device *hdev) + hid_hw_stop(hdev); + } + ++static void lenovo_input_configured(struct hid_device *hdev, ++ struct hid_input *hi) ++{ ++ switch (hdev->product) { ++ case USB_DEVICE_ID_LENOVO_TPKBD: ++ case USB_DEVICE_ID_LENOVO_CUSBKBD: ++ case USB_DEVICE_ID_LENOVO_CBTKBD: ++ if (test_bit(EV_REL, hi->input->evbit)) { ++ /* set only for trackpoint device */ ++ __set_bit(INPUT_PROP_POINTER, hi->input->propbit); ++ __set_bit(INPUT_PROP_POINTING_STICK, ++ hi->input->propbit); ++ } ++ break; ++ } ++} ++ ++ + static const struct hid_device_id lenovo_devices[] = { + { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_CUSBKBD) }, +@@ -774,6 +792,7 @@ MODULE_DEVICE_TABLE(hid, lenovo_devices); + static struct hid_driver lenovo_driver = { + .name = "lenovo", + .id_table = lenovo_devices, ++ .input_configured = lenovo_input_configured, + .input_mapping = lenovo_input_mapping, + .probe = lenovo_probe, + .remove = lenovo_remove, diff --git a/kernel.spec b/kernel.spec index d762503bf..6ca6a65cd 100644 --- a/kernel.spec +++ b/kernel.spec @@ -796,6 +796,9 @@ Patch26212: fs_pin-Allow-for-the-possibility-that-m_list-or-s_li.patch #rhbz 1217249 Patch26214: acpi_video-Add-enable_native_backlight-quirk-for-Mac.patch +#rhbz 1225563 +Patch26215: HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch + # END OF PATCH DEFINITIONS %endif @@ -1561,6 +1564,9 @@ ApplyPatch fs_pin-Allow-for-the-possibility-that-m_list-or-s_li.patch #rhbz 1217249 ApplyPatch acpi_video-Add-enable_native_backlight-quirk-for-Mac.patch +#rhbz 1225563 +ApplyPatch HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch + # END OF PATCH APPLICATIONS %endif @@ -2372,6 +2378,9 @@ fi # ||----w | # || || %changelog +* Tue Jun 02 2015 Josh Boyer +- Fix middle button issues on external Lenovo keyboards (rhbz 1225563) + * Thu May 28 2015 Josh Boyer - Add quirk for Mac Pro backlight (rhbz 1217249)