Re: ALPS DualPoint double click bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 30 July 2015 16:17:23 Hans de Goede wrote:
> Hi,
> 
> On 28-07-15 01:38, Douglas Christman wrote:
> >On Mon, Jul 27, 2015 at 12:40 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> >>
> >>OK, please let me know soon, I would like to get to the bottom
> >>of this, and knowing the exact commit causing the problem will
> >>help a lot.
> >>
> >>Regards,
> >>
> >>hans
> >
> >I've verified that reverting 92bac83d on a clean v4.1 kernel
> >(b953c0d2) resolves the issue.
> 
> Thanks,
> 
> Can you please apply the attached patch on a clean v4.1 kernel,
> and confirm that that fixes this ?
> 
> Regards,
> 
> Hans

> From ee3d5d5a298b178ae5284b9766ca849665a37670 Mon Sep 17 00:00:00 2001
> From: Hans de Goede <hdegoede@xxxxxxxxxx>
> Date: Thu, 30 Jul 2015 15:49:16 +0200
> Subject: [PATCH] alps: Only Dell laptops have separate button bits for v2
>  dualpoint sticks
> 
> It turns out that only Dell laptops have the separate button bits for
> v2 dualpoint sticks and that commit 92bac83dd79e ("Input: alps - non
> interleaved V2 dualpoint has separate stick button bits") causes
> regressions on Toshiba laptops.
> 
> This commit adds a check for Dell laptops to the code for handling these
> extra button bits, fixing this regression.
> 
> This patch has been tested on a Dell Latitude D620 to make sure that it
> does not reintroduce the original problem.
> 
> Reported-by: Douglas Christman <douglaschristman@xxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
>  drivers/input/mouse/alps.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 113d6f1..889aec1 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -20,6 +20,7 @@
>  #include <linux/input/mt.h>
>  #include <linux/serio.h>
>  #include <linux/libps2.h>
> +#include <linux/dmi.h>
>  
>  #include "psmouse.h"
>  #include "alps.h"
> @@ -251,8 +252,9 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
>  		return;
>  	}
>  
> -	/* Non interleaved V2 dualpoint has separate stick button bits */
> -	if (priv->proto_version == ALPS_PROTO_V2 &&
> +	/* Dell non interleaved V2 dualpoint has separate stick button bits */
> +	if (dmi_name_in_vendors("Dell") &&
> +	    priv->proto_version == ALPS_PROTO_V2 &&
>  	    priv->flags == (ALPS_PASS | ALPS_DUALPOINT)) {
>  		left |= packet[0] & 1;
>  		right |= packet[0] & 2;

What about introducing new flag ALPS_<something> instead calling
dmi_name_in_vendors() function every time when we need to process
packet?

-- 
Pali Rohár
pali.rohar@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux