Comment 0 for bug 1746002

Revision history for this message
AaronMa (mapengyu) wrote : TrackPoint: middle button doesn't work on TrackPoint-compatible device.

Lenovo introduced 4 new TrackPoint compatible sticks those only support the minimum commands described in the spec, which has been used in the current Windows driver.

Legacy TrackPoint: 0101 – 0E01

ALPS: 0102 – FF02

ELAN:0103 – FF03

NXP: 0104 – FF04

TrackPoint (ID: 01/02) report 0 button when reading the EXT_BUTTON command.

Setting middle button enabled to make it work.

Upstream patch:
commit f5d07b9e98022d50720e38aa936fc11c67868ece
Author: Aaron Ma <email address hidden>
Date: Fri Jan 19 09:43:39 2018 -0800

    Input: trackpoint - force 3 buttons if 0 button is reported

    Lenovo introduced trackpoint compatible sticks with minimum PS/2 commands.
    They supposed to reply with 0x02, 0x03, or 0x04 in response to the
    "Read Extended ID" command, so we would know not to try certain extended
    commands. Unfortunately even some trackpoints reporting the original IBM
    version (0x01 firmware 0x0e) now respond with incorrect data to the "Get
    Extended Buttons" command:

     thinkpad_acpi: ThinkPad BIOS R0DET87W (1.87 ), EC unknown
     thinkpad_acpi: Lenovo ThinkPad E470, model 20H1004SGE

     psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 0/0

    Since there are no trackpoints without buttons, let's assume the trackpoint
    has 3 buttons when we get 0 response to the extended buttons query.

    Signed-off-by: Aaron Ma <email address hidden>
    Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=196253
    Cc: <email address hidden>
    Signed-off-by: Dmitry Torokhov <email address hidden>