| From b0cfb794a3dd1d699f3e453f9180bd06508fb8f0 Mon Sep 17 00:00:00 2001 |
| From: Andreas Bosch <linux@progandy.de> |
| Date: Wed, 15 Oct 2014 10:44:50 -0700 |
| Subject: Input: alps - fix v4 button press recognition |
| |
| From: Andreas Bosch <linux@progandy.de> |
| |
| commit b0cfb794a3dd1d699f3e453f9180bd06508fb8f0 upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/input/mouse/alps.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/input/mouse/alps.c |
| +++ b/drivers/input/mouse/alps.c |
| @@ -835,8 +835,8 @@ static void alps_process_packet_v4(struc |
| 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); |