diff options
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.patch | 50 |
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 + |