Input: trackpoint - assume 3 buttons when buttons detection fails
authorOscar Campos <oscar.campos@member.fsf.org>
Wed, 19 Jul 2017 00:20:36 +0000 (17:20 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 19 Jul 2017 00:28:47 +0000 (17:28 -0700)
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.

Signed-off-by: Oscar Campos <oscar.campos@member.fsf.org>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/trackpoint.c

index 922ea02edcc3ef6c091b572275245e7d5fabd3f0..20b5b21c1bba8892f37aab4a0190dfd6352b72d1 100644 (file)
@@ -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);