diff mbox

[v2] Input: alps - fix v4 button press recognition

Message ID 1413313685-24405-1-git-send-email-linux@progandy.de (mailing list archive)
State New, archived
Headers show

Commit Message

Andreas Bosch Oct. 14, 2014, 7:08 p.m. UTC
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>
---

This is the second version of the patch. The first try got mangled 
during the transmission.

Comments

Dmitry Torokhov Oct. 15, 2014, 5:45 p.m. UTC | #1
On Tue, Oct 14, 2014 at 09:08:05PM +0200, Andreas Bosch wrote:
> 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>

Applied, thank you.

> ---
> 
> This is the second version of the patch. The first try got mangled 
> during the transmission.
> 
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 35a49bf..2b0ae8c 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -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);
> -- 
> 2.1.2
>
diff mbox

Patch

diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 35a49bf..2b0ae8c 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -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);