Input: alps - fix v4 button press recognition
authorAndreas Bosch <linux@progandy.de>
Wed, 15 Oct 2014 17:44:50 +0000 (10:44 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 15 Oct 2014 17:57:19 +0000 (10:57 -0700)
Since the change to struct input_mt_pos some variables are now bitfields
instead of integers. Automatic conversion from integer to bitfield entry
destroys information, therefore enforce boolean interpretation instead.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1114768
Fixes: 02d04254a5df ("Input: alps - use struct input_mt_pos to track coordinates")
Signed-off-by: Andreas Bosch <linux@progandy.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/alps.c

index 35a49bf572273e464399944c05e8072a7b06e138..2b0ae8cc8e51bc3ca52622f66e5909b537bd0153 100644 (file)
@@ -835,8 +835,8 @@ static void alps_process_packet_v4(struct psmouse *psmouse)
                f->fingers = alps_process_bitmap(priv, f);
        }
 
-       f->left = packet[4] & 0x01;
-       f->right = packet[4] & 0x02;
+       f->left = !!(packet[4] & 0x01);
+       f->right = !!(packet[4] & 0x02);
 
        f->st.x = ((packet[1] & 0x7f) << 4) | ((packet[3] & 0x30) >> 2) |
                  ((packet[0] & 0x30) >> 4);