Input: alps - fix rushmore packet decoding
authorYunkang Tang <yunkang.tang@cn.alps.com>
Sat, 26 Jul 2014 05:29:24 +0000 (22:29 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 26 Jul 2014 21:03:12 +0000 (14:03 -0700)
Signed-off-by: Yunkang Tang <yunkang.tang@cn.alps.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/alps.c

index fb15c64ffb957f3485be2751474a76e3bccf9682..e15daea568644e0a08eca3beefe49552bdd7b984 100644 (file)
@@ -559,6 +559,9 @@ static void alps_decode_rushmore(struct alps_fields *f, unsigned char *p,
 {
        alps_decode_pinnacle(f, p, psmouse);
 
+       /* Rushmore's packet decode has a bit difference with Pinnacle's */
+       f->is_mp = !!(p[5] & 0x40);
+       f->fingers = max((p[5] & 0x3), ((p[5] >> 2) & 0x3)) + 1;
        f->x_map |= (p[5] & 0x10) << 11;
        f->y_map |= (p[5] & 0x20) << 6;
 }