summarylogtreecommitdiffstats
path: root/0001-4.4-fix-elan.patch
diff options
context:
space:
mode:
authorLeonard König2016-02-17 00:00:17 +0100
committerLeonard König2016-02-17 00:00:17 +0100
commitaeb44e3a8c73aeee2c0c4ce52e183a15ffc0b365 (patch)
treea13be00b84293f94d6d566080c51eca69b989d85 /0001-4.4-fix-elan.patch
parent652a55e72878640107f27d75afcd5a7900f20c58 (diff)
downloadaur-aeb44e3a8c73aeee2c0c4ce52e183a15ffc0b365.tar.gz
elanfix
Diffstat (limited to '0001-4.4-fix-elan.patch')
-rw-r--r--0001-4.4-fix-elan.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/0001-4.4-fix-elan.patch b/0001-4.4-fix-elan.patch
new file mode 100644
index 000000000000..36f1c2d3f83d
--- /dev/null
+++ b/0001-4.4-fix-elan.patch
@@ -0,0 +1,30 @@
+diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
+index 3d664d0..2b8ff18 100644
+--- a/drivers/hid/hid-multitouch.c
++++ b/drivers/hid/hid-multitouch.c
+@@ -357,8 +357,19 @@ static void mt_feature_mapping(struct hid_device *hdev,
+ break;
+ }
+
+- td->inputmode = field->report->id;
+- td->inputmode_index = usage->usage_index;
++ if (td->inputmode < 0) {
++ td->inputmode = field->report->id;
++ td->inputmode_index = usage->usage_index;
++ } else {
++ /*
++ * Some elan panels wrongly declare 2 input mode
++ * features, and silently ignore when we set the
++ * value in the second field. Skip the second feature
++ * and hope for the best.
++ */
++ dev_info(&hdev->dev,
++ "Ignoring the extra HID_DG_INPUTMODE\n");
++ }
+
+ break;
+ case HID_DG_CONTACTMAX:
+--
+2.5.0
+
+