summaryrefslogtreecommitdiffstats
path: root/input-cypress_ps2-Don-t-report-the-cypress-PS-2-trac.patch
diff options
context:
space:
mode:
Diffstat (limited to 'input-cypress_ps2-Don-t-report-the-cypress-PS-2-trac.patch')
-rw-r--r--input-cypress_ps2-Don-t-report-the-cypress-PS-2-trac.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/input-cypress_ps2-Don-t-report-the-cypress-PS-2-trac.patch b/input-cypress_ps2-Don-t-report-the-cypress-PS-2-trac.patch
new file mode 100644
index 000000000..5d8b3b1b0
--- /dev/null
+++ b/input-cypress_ps2-Don-t-report-the-cypress-PS-2-trac.patch
@@ -0,0 +1,50 @@
+From c4aa64b54ecc029579b0c62e976d747a0e567dfc Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 21 Mar 2014 10:55:11 +0100
+Subject: [PATCH] input: cypress_ps2: Don't report the cypress PS/2 trackpads
+ as a button pad
+
+The cypress PS/2 trackpad models supported by the cypress_ps2 driver emulate
+BTN_RIGHT events in firmware based on the finger position, as part of this
+no motion events are sent when the finger is in the button area.
+
+The INPUT_PROP_BUTTONPAD property is there to indicate to userspace that
+BTN_RIGHT events should be emulated in userspace, which is not necessary
+in this case.
+
+When INPUT_PROP_BUTTONPAD is advertised userspace will wait for a motion event
+before propagating the button event higher up the stack, as it needs current
+abs x + y data for its BTN_RIGHT emulation. Since in the cypress_ps2 pads
+don't report motion events in the button area, this means that clicks in the
+button area end up being ignored, so INPUT_PROP_BUTTONPAD actually causes
+problems for these touchpads, and removing it fixes:
+
+https://bugs.freedesktop.org/show_bug.cgi?id=76341
+
+Reported-by: Adam Williamson <awilliam@redhat.com>
+Tested-by: Adam Williamson <awilliam@redhat.com>
+Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+Cc: Adam Williamson <awilliam@redhat.com>
+Cc: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Cc: stable@vger.kernel.org
+---
+ drivers/input/mouse/cypress_ps2.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/input/mouse/cypress_ps2.c b/drivers/input/mouse/cypress_ps2.c
+index 87095e2..8af34ff 100644
+--- a/drivers/input/mouse/cypress_ps2.c
++++ b/drivers/input/mouse/cypress_ps2.c
+@@ -409,7 +409,6 @@ static int cypress_set_input_params(struct input_dev *input,
+ __clear_bit(REL_X, input->relbit);
+ __clear_bit(REL_Y, input->relbit);
+
+- __set_bit(INPUT_PROP_BUTTONPAD, input->propbit);
+ __set_bit(EV_KEY, input->evbit);
+ __set_bit(BTN_LEFT, input->keybit);
+ __set_bit(BTN_RIGHT, input->keybit);
+--
+1.9.0
+