diff mbox

Input: synaptics - handle spurious release of trackstick buttons, again

Message ID 1458037097-6444-1-git-send-email-benjamin.tissoires@redhat.com (mailing list archive)
State Accepted
Headers show

Commit Message

Benjamin Tissoires March 15, 2016, 10:18 a.m. UTC
Looks like the fimware 8.2 stall has the extra buttons spurious release
bug.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=114321
Cc: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
 drivers/input/mouse/synaptics.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Benjamin Tissoires March 15, 2016, 2:25 p.m. UTC | #1
On Tue, Mar 15, 2016 at 11:18 AM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
> Looks like the fimware 8.2 stall has the extra buttons spurious release

Typo: *still, not stall. (sorry)

Cheers,
Benjamin

> bug.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=114321
> Cc: stable@vger.kernel.org
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> ---
>  drivers/input/mouse/synaptics.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
> index 6025eb4..9f3b83f 100644
> --- a/drivers/input/mouse/synaptics.c
> +++ b/drivers/input/mouse/synaptics.c
> @@ -862,8 +862,9 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
>         if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))
>                 return;
>
> -       /* Bug in FW 8.1, buttons are reported only when ExtBit is 1 */
> -       if (SYN_ID_FULL(priv->identity) == 0x801 &&
> +       /* Bug in FW 8.1 & 8.2, buttons are reported only when ExtBit is 1 */
> +       if (((SYN_ID_FULL(priv->identity) == 0x801) ||
> +            (SYN_ID_FULL(priv->identity) == 0x802)) &&
>             !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
>                 return;
>
> --
> 2.5.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov March 18, 2016, 12:14 a.m. UTC | #2
On Tue, Mar 15, 2016 at 11:18:17AM +0100, Benjamin Tissoires wrote:
> Looks like the fimware 8.2 stall has the extra buttons spurious release
> bug.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=114321
> Cc: stable@vger.kernel.org
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

Applied, thank you.

> ---
>  drivers/input/mouse/synaptics.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
> index 6025eb4..9f3b83f 100644
> --- a/drivers/input/mouse/synaptics.c
> +++ b/drivers/input/mouse/synaptics.c
> @@ -862,8 +862,9 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
>  	if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))
>  		return;
>  
> -	/* Bug in FW 8.1, buttons are reported only when ExtBit is 1 */
> -	if (SYN_ID_FULL(priv->identity) == 0x801 &&
> +	/* Bug in FW 8.1 & 8.2, buttons are reported only when ExtBit is 1 */
> +	if (((SYN_ID_FULL(priv->identity) == 0x801) ||
> +	     (SYN_ID_FULL(priv->identity) == 0x802)) &&

but dropped extra parenthesis...

>  	    !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
>  		return;
>  
> -- 
> 2.5.0
>
diff mbox

Patch

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 6025eb4..9f3b83f 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -862,8 +862,9 @@  static void synaptics_report_ext_buttons(struct psmouse *psmouse,
 	if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))
 		return;
 
-	/* Bug in FW 8.1, buttons are reported only when ExtBit is 1 */
-	if (SYN_ID_FULL(priv->identity) == 0x801 &&
+	/* Bug in FW 8.1 & 8.2, buttons are reported only when ExtBit is 1 */
+	if (((SYN_ID_FULL(priv->identity) == 0x801) ||
+	     (SYN_ID_FULL(priv->identity) == 0x802)) &&
 	    !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
 		return;