From 29a6f04e84a54e1ac33d0cf77bef5d7ebec55a74 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 8 Mar 2012 14:59:28 -0800 Subject: [PATCH] 3.2-stable patches added patches: input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch --- ...d-detection-when-buttons-are-pressed.patch | 51 +++++++++++++++++++ queue-3.2/series | 1 + 2 files changed, 52 insertions(+) create mode 100644 queue-3.2/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch diff --git a/queue-3.2/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch b/queue-3.2/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch new file mode 100644 index 00000000000..77140705228 --- /dev/null +++ b/queue-3.2/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch @@ -0,0 +1,51 @@ +From seth.forshee@canonical.com Thu Mar 8 14:57:33 2012 +From: Seth Forshee +Date: Thu, 8 Mar 2012 13:48:12 -0600 +Subject: Input: ALPS - fix touchpad detection when buttons are pressed +To: gregkh@linuxfoundation.org, stable@vger.kernel.org +Cc: zbe64533@gmail.com, dtor@mail.ru +Message-ID: <1331236092-12260-1-git-send-email-seth.forshee@canonical.com> + + +From: Akio Idehara + +commit 99c90ab31fad855b9da9dee3a5aa6c27f263e9d6 upstream. + +ALPS touchpad detection fails if some buttons of ALPS are pressed. +The reason is that the "E6" query response byte is different from +what is expected. + +This was tested on a Toshiba Portege R500. + +Signed-off-by: Akio Idehara +Tested-by: Seth Forshee +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/mouse/alps.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/drivers/input/mouse/alps.c ++++ b/drivers/input/mouse/alps.c +@@ -421,7 +421,9 @@ static const struct alps_model_info *alp + + /* + * First try "E6 report". +- * ALPS should return 0,0,10 or 0,0,100 ++ * ALPS should return 0,0,10 or 0,0,100 if no buttons are pressed. ++ * The bits 0-2 of the first byte will be 1s if some buttons are ++ * pressed. + */ + param[0] = 0; + if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES) || +@@ -437,7 +439,8 @@ static const struct alps_model_info *alp + psmouse_dbg(psmouse, "E6 report: %2.2x %2.2x %2.2x", + param[0], param[1], param[2]); + +- if (param[0] != 0 || param[1] != 0 || (param[2] != 10 && param[2] != 100)) ++ if ((param[0] & 0xf8) != 0 || param[1] != 0 || ++ (param[2] != 10 && param[2] != 100)) + return NULL; + + /* diff --git a/queue-3.2/series b/queue-3.2/series index 581fb88c27f..30d5468cbac 100644 --- a/queue-3.2/series +++ b/queue-3.2/series @@ -72,3 +72,4 @@ media-staging-lirc_serial-fix-init-exit-order.patch media-staging-lirc_serial-free-resources-on-failure-paths-of-lirc_serial_probe.patch media-staging-lirc_serial-fix-deadlock-on-resume-failure.patch media-staging-lirc_serial-do-not-assume-error-codes-returned-by-request_irq.patch +input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch -- 2.47.3