diff mbox

input: mouse: trackpoint: assume 3 buttons when buttons detection fails

Message ID 20170529114458.GA28855@ThinkStation (mailing list archive)
State Accepted
Headers show

Commit Message

Oscar Campos May 29, 2017, 11:45 a.m. UTC
Trackpoint buttons detection fails on ThinkPad 570 and 470 series,
this makes the middle button of the trackpoint to not being recogized.
As I don't believe there is any trackpoint with less than 3 buttons this
patch just assumes three buttons when the extended button information
read fails.

Cc: linux-input@vger.kernel.org
Signed-off-by: Oscar Campos <oscar.campos@member.fsf.org>
---
 drivers/input/mouse/trackpoint.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--
2.13.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

Comments

Peter Hutterer May 31, 2017, 4:42 a.m. UTC | #1
On Mon, May 29, 2017 at 12:45:01PM +0100, Oscar Campos wrote:
> Trackpoint buttons detection fails on ThinkPad 570 and 470 series,
> this makes the middle button of the trackpoint to not being recogized.
> As I don't believe there is any trackpoint with less than 3 buttons this
> patch just assumes three buttons when the extended button information
> read fails.

I vaguely remember there may have been one at some point, but I can't
remember which model it was in (not a Lenovo anyway). This approach seems
sensible, but I worry about it papering over potential bugs (missing
support).

still, Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

Cheers,
   Peter

> 
> Cc: linux-input@vger.kernel.org
> Signed-off-by: Oscar Campos <oscar.campos@member.fsf.org>
> ---
>  drivers/input/mouse/trackpoint.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
> index 922ea02edcc3..20b5b21c1bba 100644
> --- a/drivers/input/mouse/trackpoint.c
> +++ b/drivers/input/mouse/trackpoint.c
> @@ -380,8 +380,8 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
>  		return 0;
> 
>  	if (trackpoint_read(ps2dev, TP_EXT_BTN, &button_info)) {
> -		psmouse_warn(psmouse, "failed to get extended button data\n");
> -		button_info = 0;
> +		psmouse_warn(psmouse, "failed to get extended button data, assuming 3 buttons\n");
> +		button_info = 0x33;
>  	}
> 
>  	psmouse->private = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL);
> --
> 2.13.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 July 19, 2017, 12:25 a.m. UTC | #2
On Wed, May 31, 2017 at 02:42:04PM +1000, Peter Hutterer wrote:
> On Mon, May 29, 2017 at 12:45:01PM +0100, Oscar Campos wrote:
> > Trackpoint buttons detection fails on ThinkPad 570 and 470 series,
> > this makes the middle button of the trackpoint to not being recogized.
> > As I don't believe there is any trackpoint with less than 3 buttons this
> > patch just assumes three buttons when the extended button information
> > read fails.
> 
> I vaguely remember there may have been one at some point, but I can't
> remember which model it was in (not a Lenovo anyway). This approach seems
> sensible, but I worry about it papering over potential bugs (missing
> support).
> 
> still, Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

Applied, thank you.

> 
> Cheers,
>    Peter
> 
> > 
> > Cc: linux-input@vger.kernel.org
> > Signed-off-by: Oscar Campos <oscar.campos@member.fsf.org>
> > ---
> >  drivers/input/mouse/trackpoint.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
> > index 922ea02edcc3..20b5b21c1bba 100644
> > --- a/drivers/input/mouse/trackpoint.c
> > +++ b/drivers/input/mouse/trackpoint.c
> > @@ -380,8 +380,8 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
> >  		return 0;
> > 
> >  	if (trackpoint_read(ps2dev, TP_EXT_BTN, &button_info)) {
> > -		psmouse_warn(psmouse, "failed to get extended button data\n");
> > -		button_info = 0;
> > +		psmouse_warn(psmouse, "failed to get extended button data, assuming 3 buttons\n");
> > +		button_info = 0x33;
> >  	}
> > 
> >  	psmouse->private = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL);
> > --
> > 2.13.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
> >
diff mbox

Patch

diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
index 922ea02edcc3..20b5b21c1bba 100644
--- a/drivers/input/mouse/trackpoint.c
+++ b/drivers/input/mouse/trackpoint.c
@@ -380,8 +380,8 @@  int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
 		return 0;

 	if (trackpoint_read(ps2dev, TP_EXT_BTN, &button_info)) {
-		psmouse_warn(psmouse, "failed to get extended button data\n");
-		button_info = 0;
+		psmouse_warn(psmouse, "failed to get extended button data, assuming 3 buttons\n");
+		button_info = 0x33;
 	}

 	psmouse->private = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL);