aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>2015-05-06 15:01:31 -0400
committerJiri Kosina <jkosina@suse.cz>2015-05-07 04:50:51 -0400
commit5006c1052aafa01dab5b0e643b7dac755b41f3bb (patch)
treed68b5d23073415c1c07a84028e498e6499a5caae /drivers/hid
parenta7d2bf25a4837e6514a2747380fd4539b63ee20c (diff)
Revert "HID: logitech-hidpp: support combo keyboard touchpad TK820"
This reverts commit 3a61e97563d78a2ca10752902449570d8433ce76. The Logitech TK820 seems to be affected by a firmware bug which delays the sending of the keys (pressed, or released, which triggers a key-repeat) while holding fingers on the touch sensor. This behavior can be observed while using the mouse emulation mode if the user moves the finger while typing (highly improbable though). Holding the finger still while in the mouse emulation mode does not trigger the key repeat problem. So better keep things in their previous state to not have to explain users that the new key-repeat bug they see is a "feature". Furthermore, I noticed that I disabled the media keys whith this patch. Sorry, my bad. I think it is best to revert the patch, in all the current versions it has been shipped. Cc: <stable@vger.kernel.org> # v3.19 and above Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-logitech-hidpp.c20
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index b3cf6fd4be96..5fd530acf747 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -44,7 +44,6 @@ MODULE_PARM_DESC(disable_raw_mode,
44/* bits 1..20 are reserved for classes */ 44/* bits 1..20 are reserved for classes */
45#define HIDPP_QUIRK_DELAYED_INIT BIT(21) 45#define HIDPP_QUIRK_DELAYED_INIT BIT(21)
46#define HIDPP_QUIRK_WTP_PHYSICAL_BUTTONS BIT(22) 46#define HIDPP_QUIRK_WTP_PHYSICAL_BUTTONS BIT(22)
47#define HIDPP_QUIRK_MULTI_INPUT BIT(23)
48 47
49/* 48/*
50 * There are two hidpp protocols in use, the first version hidpp10 is known 49 * There are two hidpp protocols in use, the first version hidpp10 is known
@@ -706,12 +705,6 @@ static int wtp_input_mapping(struct hid_device *hdev, struct hid_input *hi,
706 struct hid_field *field, struct hid_usage *usage, 705 struct hid_field *field, struct hid_usage *usage,
707 unsigned long **bit, int *max) 706 unsigned long **bit, int *max)
708{ 707{
709 struct hidpp_device *hidpp = hid_get_drvdata(hdev);
710
711 if ((hidpp->quirks & HIDPP_QUIRK_MULTI_INPUT) &&
712 (field->application == HID_GD_KEYBOARD))
713 return 0;
714
715 return -1; 708 return -1;
716} 709}
717 710
@@ -720,10 +713,6 @@ static void wtp_populate_input(struct hidpp_device *hidpp,
720{ 713{
721 struct wtp_data *wd = hidpp->private_data; 714 struct wtp_data *wd = hidpp->private_data;
722 715
723 if ((hidpp->quirks & HIDPP_QUIRK_MULTI_INPUT) && origin_is_hid_core)
724 /* this is the generic hid-input call */
725 return;
726
727 __set_bit(EV_ABS, input_dev->evbit); 716 __set_bit(EV_ABS, input_dev->evbit);
728 __set_bit(EV_KEY, input_dev->evbit); 717 __set_bit(EV_KEY, input_dev->evbit);
729 __clear_bit(EV_REL, input_dev->evbit); 718 __clear_bit(EV_REL, input_dev->evbit);
@@ -1245,10 +1234,6 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id)
1245 if (hidpp->quirks & HIDPP_QUIRK_DELAYED_INIT) 1234 if (hidpp->quirks & HIDPP_QUIRK_DELAYED_INIT)
1246 connect_mask &= ~HID_CONNECT_HIDINPUT; 1235 connect_mask &= ~HID_CONNECT_HIDINPUT;
1247 1236
1248 /* Re-enable hidinput for multi-input devices */
1249 if (hidpp->quirks & HIDPP_QUIRK_MULTI_INPUT)
1250 connect_mask |= HID_CONNECT_HIDINPUT;
1251
1252 ret = hid_hw_start(hdev, connect_mask); 1237 ret = hid_hw_start(hdev, connect_mask);
1253 if (ret) { 1238 if (ret) {
1254 hid_err(hdev, "%s:hid_hw_start returned error\n", __func__); 1239 hid_err(hdev, "%s:hid_hw_start returned error\n", __func__);
@@ -1296,11 +1281,6 @@ static const struct hid_device_id hidpp_devices[] = {
1296 HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 1281 HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH,
1297 USB_DEVICE_ID_LOGITECH_T651), 1282 USB_DEVICE_ID_LOGITECH_T651),
1298 .driver_data = HIDPP_QUIRK_CLASS_WTP }, 1283 .driver_data = HIDPP_QUIRK_CLASS_WTP },
1299 { /* Keyboard TK820 */
1300 HID_DEVICE(BUS_USB, HID_GROUP_LOGITECH_DJ_DEVICE,
1301 USB_VENDOR_ID_LOGITECH, 0x4102),
1302 .driver_data = HIDPP_QUIRK_DELAYED_INIT | HIDPP_QUIRK_MULTI_INPUT |
1303 HIDPP_QUIRK_CLASS_WTP },
1304 1284
1305 { HID_DEVICE(BUS_USB, HID_GROUP_LOGITECH_DJ_DEVICE, 1285 { HID_DEVICE(BUS_USB, HID_GROUP_LOGITECH_DJ_DEVICE,
1306 USB_VENDOR_ID_LOGITECH, HID_ANY_ID)}, 1286 USB_VENDOR_ID_LOGITECH, HID_ANY_ID)},