From b42bc55a0c0a7b6fab15dc5fb70a4d779d8bb419 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 8 Mar 2012 14:59:35 -0800 Subject: [PATCH] 3.0-stable patches added patches: input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch --- ...d-detection-when-buttons-are-pressed.patch | 51 +++++++++++++++++++ queue-3.0/series | 1 + 2 files changed, 52 insertions(+) create mode 100644 queue-3.0/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch diff --git a/queue-3.0/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch b/queue-3.0/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch new file mode 100644 index 00000000000..ba78acc6103 --- /dev/null +++ b/queue-3.0/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch @@ -0,0 +1,51 @@ +From seth.forshee@canonical.com Thu Mar 8 14:58:31 2012 +From: Seth Forshee +Date: Thu, 8 Mar 2012 13:49:15 -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: <1331236155-12353-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 +@@ -426,7 +426,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) || +@@ -441,7 +443,8 @@ static const struct alps_model_info *alp + + dbg("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.0/series b/queue-3.0/series index 520e4bb0e39..1030d5551d4 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -55,3 +55,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