]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Mar 2012 22:59:35 +0000 (14:59 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Mar 2012 22:59:35 +0000 (14:59 -0800)
added patches:
input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch

queue-3.0/input-alps-fix-touchpad-detection-when-buttons-are-pressed.patch [new file with mode: 0644]
queue-3.0/series

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 (file)
index 0000000..ba78acc
--- /dev/null
@@ -0,0 +1,51 @@
+From seth.forshee@canonical.com  Thu Mar  8 14:58:31 2012
+From: Seth Forshee <seth.forshee@canonical.com>
+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 <zbe64533@gmail.com>
+
+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 <zbe64533@gmail.com>
+Tested-by: Seth Forshee <seth.forshee@canonical.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
+       /*
index 520e4bb0e39efb363abc66718a1ecf703b4d4130..1030d5551d47e2ea87cab5280383588ee713c74a 100644 (file)
@@ -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