summarylogtreecommitdiffstats
path: root/touchscreen_multitouch_fixes1.patch
diff options
context:
space:
mode:
authoralyptik2017-08-23 10:38:11 -1000
committeralyptik2017-08-23 10:38:11 -1000
commit388121bf9bac019d2caccb38af705feed138c259 (patch)
treeb9b5c7e585f39d2a03dc20963a5c005dfe605101 /touchscreen_multitouch_fixes1.patch
downloadaur-388121bf9bac019d2caccb38af705feed138c259.tar.gz
addpkg: linux-surfacepro3-git 4.13rc6.r65.g2acf097f16ab-1
Diffstat (limited to 'touchscreen_multitouch_fixes1.patch')
-rw-r--r--touchscreen_multitouch_fixes1.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/touchscreen_multitouch_fixes1.patch b/touchscreen_multitouch_fixes1.patch
new file mode 100644
index 000000000000..30205fa16cb8
--- /dev/null
+++ b/touchscreen_multitouch_fixes1.patch
@@ -0,0 +1,43 @@
+From 909b254eb818f63ba0e541abbbe829d923c19234 Mon Sep 17 00:00:00 2001
+From: Daniel Martin <consume.noise@gmail.com>
+Date: Fri, 2 Oct 2015 10:07:15 +0200
+Subject: [PATCH 2/4] HID: multitouch: Add MT_QUIRK_NOT_SEEN_MEANS_UP to
+ MT_CLS_WIN_8
+
+The firmware found in the touch screen of an SP3 is buggy and may miss
+to send lift off reports for contacts. Try to work around that issue by
+using MT_QUIRK_NOT_SEEN_MEANS_UP.
+
+Signed-off-by: Daniel Martin <consume.noise@gmail.com>
+---
+ drivers/hid/hid-multitouch.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
+index 1cc1108..625f1ee 100644
+--- a/drivers/hid/hid-multitouch.c
++++ b/drivers/hid/hid-multitouch.c
+@@ -206,7 +206,8 @@ static struct mt_class mt_classes[] = {
+ .quirks = MT_QUIRK_ALWAYS_VALID |
+ MT_QUIRK_IGNORE_DUPLICATES |
+ MT_QUIRK_HOVERING |
+- MT_QUIRK_CONTACT_CNT_ACCURATE },
++ MT_QUIRK_CONTACT_CNT_ACCURATE |
++ MT_QUIRK_NOT_SEEN_MEANS_UP },
+ { .name = MT_CLS_EXPORT_ALL_INPUTS,
+ .quirks = MT_QUIRK_ALWAYS_VALID |
+ MT_QUIRK_CONTACT_CNT_ACCURATE,
+@@ -1054,7 +1055,8 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
+ return -ENOMEM;
+ }
+
+- if (id->vendor == HID_ANY_ID && id->product == HID_ANY_ID)
++ if (id->vendor == HID_ANY_ID && id->product == HID_ANY_ID &&
++ id->group != HID_GROUP_MULTITOUCH_WIN_8)
+ td->serial_maybe = true;
+
+ ret = hid_parse(hdev);
+--
+2.1.4
+
+