Input: alps - use single touch data when v3 mt data contains only one finger
authorHans de Goede <hdegoede@redhat.com>
Sat, 26 Jul 2014 05:46:53 +0000 (22:46 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 26 Jul 2014 21:03:17 +0000 (14:03 -0700)
For v3 protocol devices, use the more accurate single touch data when the
mt data contains only one finger. Note the mt data reporting a finger count
of 1 should never happen, but better safe then sorry.

This brings the v3 bitmap handling in line with what the v4 code does,
allowing to factor out the common bits into a helper function.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/alps.c

index 8c2de016e22313381ef31781d2e942282dbfd78e..9a5f08db4537a46a1289850501ce5ef75f7c314b 100644 (file)
@@ -669,7 +669,7 @@ static void alps_process_touchpad_packet_v3_v5(struct psmouse *psmouse)
         * If we don't have MT data or the bitmaps were empty, we have
         * to rely on ST data.
         */
-       if (!fingers) {
+       if (fingers < 2) {
                f->mt[0].x = f->st.x;
                f->mt[0].y = f->st.y;
                fingers = f->pressure > 0 ? 1 : 0;