PROBLEM: Missing events on thinkpad trackpoint buttons

8 messages, 4 authors, 2015-08-19 · open the first message on its own page

PROBLEM: Missing events on thinkpad trackpoint buttons

From: Nick Bowler <hidden>
Date: 2015-08-18 02:31:02

Hi,

I'm not sure if this is actually a Linux issue but figured I'd at least
report it here to start...

I have a Lenovo Thinkpad X250, with the newfangled trackpoint buttons.
I have a problem with missing button press or release events: sometimes
pressing a button has no effect, and sometimes releasing a button has no
effect (the latter is especially annoying, as the button remains depressed
as far as any applications are concerned).

After some testing, the problem apparently depends on the position of my
hands over the touchpad.  I can reliably reproduce it as follows: place
two fingers on the touchpad, then press the button repeatedly.  Watching
with evtest, several events (could be either press or release) will
simply be missin, although the kernel never does anything weird like
send two release events in a row.  There are no problems if there are
0 or 1 fingers on the touchpad.

My current kernel version is 4.1.6, although the problem occurs in all
versions that I tried.

Here is the evtest result from placing two fingers on the touchpad, then
pressing the left trackpoint button 10 times, counting 1 second between
each press.  As you can see, only 3 presses and 3 release events total
were sent by the kernel, sometimes with many physical button presses
between the press and its corresponding release:

  Input driver version is 1.0.1
  Input device ID: bus 0x11 vendor 0x2 product 0xa version 0x0
  Input device name: "TPPS/2 IBM TrackPoint"
  Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
      Event code 272 (BTN_LEFT)
      Event code 273 (BTN_RIGHT)
      Event code 274 (BTN_MIDDLE)
    Event type 2 (EV_REL)
      Event code 0 (REL_X)
      Event code 1 (REL_Y)
  Properties:
    Property type 0 (INPUT_PROP_POINTER)
    Property type 5 (?)
  Testing ... (interrupt to exit)
  Event: time 1439863173.241278, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863173.241278, -------------- SYN_REPORT ------------
  Event: time 1439863180.610511, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863180.610511, -------------- SYN_REPORT ------------
  Event: time 1439863182.162257, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863182.162257, -------------- SYN_REPORT ------------
  Event: time 1439863185.749212, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863185.749212, -------------- SYN_REPORT ------------
  Event: time 1439863187.145478, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863187.145478, -------------- SYN_REPORT ------------
  Event: time 1439863189.162652, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863189.162652, -------------- SYN_REPORT ------------

For reference: the same test was repeated with only one finger on the
touchpad; all events are delivered properly in this case:

  Input driver version is 1.0.1
  Input device ID: bus 0x11 vendor 0x2 product 0xa version 0x0
  Input device name: "TPPS/2 IBM TrackPoint"
  Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
      Event code 272 (BTN_LEFT)
      Event code 273 (BTN_RIGHT)
      Event code 274 (BTN_MIDDLE)
    Event type 2 (EV_REL)
      Event code 0 (REL_X)
      Event code 1 (REL_Y)
  Properties:
    Property type 0 (INPUT_PROP_POINTER)
    Property type 5 (?)
  Testing ... (interrupt to exit)
  Event: time 1439863147.840979, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863147.840979, -------------- SYN_REPORT ------------
  Event: time 1439863147.919313, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863147.919313, -------------- SYN_REPORT ------------
  Event: time 1439863149.198783, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863149.198783, -------------- SYN_REPORT ------------
  Event: time 1439863149.285873, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863149.285873, -------------- SYN_REPORT ------------
  Event: time 1439863150.673035, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863150.673035, -------------- SYN_REPORT ------------
  Event: time 1439863150.780064, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863150.780064, -------------- SYN_REPORT ------------
  Event: time 1439863152.204741, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863152.204741, -------------- SYN_REPORT ------------
  Event: time 1439863152.321820, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863152.321820, -------------- SYN_REPORT ------------
  Event: time 1439863153.698388, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863153.698388, -------------- SYN_REPORT ------------
  Event: time 1439863153.834195, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863153.834195, -------------- SYN_REPORT ------------
  Event: time 1439863155.181776, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863155.181776, -------------- SYN_REPORT ------------
  Event: time 1439863155.308142, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863155.308142, -------------- SYN_REPORT ------------
  Event: time 1439863156.723367, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863156.723367, -------------- SYN_REPORT ------------
  Event: time 1439863156.849475, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863156.849475, -------------- SYN_REPORT ------------
  Event: time 1439863158.294692, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863158.294692, -------------- SYN_REPORT ------------
  Event: time 1439863158.419989, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863158.419989, -------------- SYN_REPORT ------------
  Event: time 1439863159.846138, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863159.846138, -------------- SYN_REPORT ------------
  Event: time 1439863159.962375, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863159.962375, -------------- SYN_REPORT ------------
  Event: time 1439863161.591024, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863161.591024, -------------- SYN_REPORT ------------
  Event: time 1439863161.688792, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863161.688792, -------------- SYN_REPORT ------------

Any thoughts?

Thanks,
  Nick

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Benjamin Tissoires <hidden>
Date: 2015-08-18 19:06:44

Hi Nick,

thanks for the report.

On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler [off-list ref] wrote:
Hi,

I'm not sure if this is actually a Linux issue but figured I'd at least
report it here to start...

I have a Lenovo Thinkpad X250, with the newfangled trackpoint buttons.
I have a problem with missing button press or release events: sometimes
pressing a button has no effect, and sometimes releasing a button has no
effect (the latter is especially annoying, as the button remains depressed
as far as any applications are concerned).

After some testing, the problem apparently depends on the position of my
hands over the touchpad.  I can reliably reproduce it as follows: place
two fingers on the touchpad, then press the button repeatedly.  Watching
with evtest, several events (could be either press or release) will
simply be missin, although the kernel never does anything weird like
send two release events in a row.  There are no problems if there are
0 or 1 fingers on the touchpad.

My current kernel version is 4.1.6, although the problem occurs in all
versions that I tried.

Here is the evtest result from placing two fingers on the touchpad, then
pressing the left trackpoint button 10 times, counting 1 second between
each press.  As you can see, only 3 presses and 3 release events total
were sent by the kernel, sometimes with many physical button presses
between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a firmware
problem. I have asked Chandler to reproduce it on his t450 and see if
we observe it on our laptops too.

At the same time, could you please make a ps2emu-record log of your
touchpad when you reproduce the bug?
You can grab the sources here: https://github.com/Lyude/ps2emu
Ideally, if you could run evemu or evtest at the same time to record
what your kernel sees, that would be even better

This should help knowing if the firmware is sending the right packets
or if the driver is ignoring them.

Cheers,
Benjamin
  Input driver version is 1.0.1
  Input device ID: bus 0x11 vendor 0x2 product 0xa version 0x0
  Input device name: "TPPS/2 IBM TrackPoint"
  Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
      Event code 272 (BTN_LEFT)
      Event code 273 (BTN_RIGHT)
      Event code 274 (BTN_MIDDLE)
    Event type 2 (EV_REL)
      Event code 0 (REL_X)
      Event code 1 (REL_Y)
  Properties:
    Property type 0 (INPUT_PROP_POINTER)
    Property type 5 (?)
  Testing ... (interrupt to exit)
  Event: time 1439863173.241278, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863173.241278, -------------- SYN_REPORT ------------
  Event: time 1439863180.610511, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863180.610511, -------------- SYN_REPORT ------------
  Event: time 1439863182.162257, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863182.162257, -------------- SYN_REPORT ------------
  Event: time 1439863185.749212, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863185.749212, -------------- SYN_REPORT ------------
  Event: time 1439863187.145478, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863187.145478, -------------- SYN_REPORT ------------
  Event: time 1439863189.162652, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863189.162652, -------------- SYN_REPORT ------------

For reference: the same test was repeated with only one finger on the
touchpad; all events are delivered properly in this case:

  Input driver version is 1.0.1
  Input device ID: bus 0x11 vendor 0x2 product 0xa version 0x0
  Input device name: "TPPS/2 IBM TrackPoint"
  Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
      Event code 272 (BTN_LEFT)
      Event code 273 (BTN_RIGHT)
      Event code 274 (BTN_MIDDLE)
    Event type 2 (EV_REL)
      Event code 0 (REL_X)
      Event code 1 (REL_Y)
  Properties:
    Property type 0 (INPUT_PROP_POINTER)
    Property type 5 (?)
  Testing ... (interrupt to exit)
  Event: time 1439863147.840979, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863147.840979, -------------- SYN_REPORT ------------
  Event: time 1439863147.919313, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863147.919313, -------------- SYN_REPORT ------------
  Event: time 1439863149.198783, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863149.198783, -------------- SYN_REPORT ------------
  Event: time 1439863149.285873, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863149.285873, -------------- SYN_REPORT ------------
  Event: time 1439863150.673035, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863150.673035, -------------- SYN_REPORT ------------
  Event: time 1439863150.780064, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863150.780064, -------------- SYN_REPORT ------------
  Event: time 1439863152.204741, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863152.204741, -------------- SYN_REPORT ------------
  Event: time 1439863152.321820, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863152.321820, -------------- SYN_REPORT ------------
  Event: time 1439863153.698388, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863153.698388, -------------- SYN_REPORT ------------
  Event: time 1439863153.834195, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863153.834195, -------------- SYN_REPORT ------------
  Event: time 1439863155.181776, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863155.181776, -------------- SYN_REPORT ------------
  Event: time 1439863155.308142, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863155.308142, -------------- SYN_REPORT ------------
  Event: time 1439863156.723367, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863156.723367, -------------- SYN_REPORT ------------
  Event: time 1439863156.849475, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863156.849475, -------------- SYN_REPORT ------------
  Event: time 1439863158.294692, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863158.294692, -------------- SYN_REPORT ------------
  Event: time 1439863158.419989, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863158.419989, -------------- SYN_REPORT ------------
  Event: time 1439863159.846138, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863159.846138, -------------- SYN_REPORT ------------
  Event: time 1439863159.962375, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863159.962375, -------------- SYN_REPORT ------------
  Event: time 1439863161.591024, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863161.591024, -------------- SYN_REPORT ------------
  Event: time 1439863161.688792, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863161.688792, -------------- SYN_REPORT ------------

Any thoughts?

Thanks,
  Nick
--
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

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Benjamin Tissoires <hidden>
Date: 2015-08-19 13:52:02

On Tue, Aug 18, 2015 at 3:06 PM, Benjamin Tissoires
[off-list ref] wrote:
Hi Nick,

thanks for the report.

On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler [off-list ref] wrote:
quoted
Hi,

I'm not sure if this is actually a Linux issue but figured I'd at least
report it here to start...

I have a Lenovo Thinkpad X250, with the newfangled trackpoint buttons.
I have a problem with missing button press or release events: sometimes
pressing a button has no effect, and sometimes releasing a button has no
effect (the latter is especially annoying, as the button remains depressed
as far as any applications are concerned).

After some testing, the problem apparently depends on the position of my
hands over the touchpad.  I can reliably reproduce it as follows: place
two fingers on the touchpad, then press the button repeatedly.  Watching
with evtest, several events (could be either press or release) will
simply be missin, although the kernel never does anything weird like
send two release events in a row.  There are no problems if there are
0 or 1 fingers on the touchpad.

My current kernel version is 4.1.6, although the problem occurs in all
versions that I tried.

Here is the evtest result from placing two fingers on the touchpad, then
pressing the left trackpoint button 10 times, counting 1 second between
each press.  As you can see, only 3 presses and 3 release events total
were sent by the kernel, sometimes with many physical button presses
between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a firmware
problem. I have asked Chandler to reproduce it on his t450 and see if
we observe it on our laptops too.
Update on this one : Chandler reproduced it on the t450, so it's
likely that all of these sensors are affected. It is still unclear if
it is a firmware bug or a driver problem, but the chances are huge
that this is a firmware bug. Anyway, that's one more reason to push
towards RMI4 over SMBus for these sensors: the bug is not present with
this protocol :)

Cheers,
Benjamin
At the same time, could you please make a ps2emu-record log of your
touchpad when you reproduce the bug?
You can grab the sources here: https://github.com/Lyude/ps2emu
Ideally, if you could run evemu or evtest at the same time to record
what your kernel sees, that would be even better

This should help knowing if the firmware is sending the right packets
or if the driver is ignoring them.

Cheers,
Benjamin
quoted
  Input driver version is 1.0.1
  Input device ID: bus 0x11 vendor 0x2 product 0xa version 0x0
  Input device name: "TPPS/2 IBM TrackPoint"
  Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
      Event code 272 (BTN_LEFT)
      Event code 273 (BTN_RIGHT)
      Event code 274 (BTN_MIDDLE)
    Event type 2 (EV_REL)
      Event code 0 (REL_X)
      Event code 1 (REL_Y)
  Properties:
    Property type 0 (INPUT_PROP_POINTER)
    Property type 5 (?)
  Testing ... (interrupt to exit)
  Event: time 1439863173.241278, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863173.241278, -------------- SYN_REPORT ------------
  Event: time 1439863180.610511, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863180.610511, -------------- SYN_REPORT ------------
  Event: time 1439863182.162257, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863182.162257, -------------- SYN_REPORT ------------
  Event: time 1439863185.749212, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863185.749212, -------------- SYN_REPORT ------------
  Event: time 1439863187.145478, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863187.145478, -------------- SYN_REPORT ------------
  Event: time 1439863189.162652, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863189.162652, -------------- SYN_REPORT ------------

For reference: the same test was repeated with only one finger on the
touchpad; all events are delivered properly in this case:

  Input driver version is 1.0.1
  Input device ID: bus 0x11 vendor 0x2 product 0xa version 0x0
  Input device name: "TPPS/2 IBM TrackPoint"
  Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
      Event code 272 (BTN_LEFT)
      Event code 273 (BTN_RIGHT)
      Event code 274 (BTN_MIDDLE)
    Event type 2 (EV_REL)
      Event code 0 (REL_X)
      Event code 1 (REL_Y)
  Properties:
    Property type 0 (INPUT_PROP_POINTER)
    Property type 5 (?)
  Testing ... (interrupt to exit)
  Event: time 1439863147.840979, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863147.840979, -------------- SYN_REPORT ------------
  Event: time 1439863147.919313, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863147.919313, -------------- SYN_REPORT ------------
  Event: time 1439863149.198783, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863149.198783, -------------- SYN_REPORT ------------
  Event: time 1439863149.285873, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863149.285873, -------------- SYN_REPORT ------------
  Event: time 1439863150.673035, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863150.673035, -------------- SYN_REPORT ------------
  Event: time 1439863150.780064, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863150.780064, -------------- SYN_REPORT ------------
  Event: time 1439863152.204741, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863152.204741, -------------- SYN_REPORT ------------
  Event: time 1439863152.321820, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863152.321820, -------------- SYN_REPORT ------------
  Event: time 1439863153.698388, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863153.698388, -------------- SYN_REPORT ------------
  Event: time 1439863153.834195, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863153.834195, -------------- SYN_REPORT ------------
  Event: time 1439863155.181776, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863155.181776, -------------- SYN_REPORT ------------
  Event: time 1439863155.308142, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863155.308142, -------------- SYN_REPORT ------------
  Event: time 1439863156.723367, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863156.723367, -------------- SYN_REPORT ------------
  Event: time 1439863156.849475, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863156.849475, -------------- SYN_REPORT ------------
  Event: time 1439863158.294692, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863158.294692, -------------- SYN_REPORT ------------
  Event: time 1439863158.419989, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863158.419989, -------------- SYN_REPORT ------------
  Event: time 1439863159.846138, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863159.846138, -------------- SYN_REPORT ------------
  Event: time 1439863159.962375, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863159.962375, -------------- SYN_REPORT ------------
  Event: time 1439863161.591024, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
  Event: time 1439863161.591024, -------------- SYN_REPORT ------------
  Event: time 1439863161.688792, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
  Event: time 1439863161.688792, -------------- SYN_REPORT ------------

Any thoughts?

Thanks,
  Nick
--
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

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Nick Bowler <hidden>
Date: 2015-08-19 14:10:56

On 2015-08-19, Benjamin Tissoires [off-list ref] wrote:
On Tue, Aug 18, 2015 at 3:06 PM, Benjamin Tissoires
[off-list ref] wrote:
[...]
quoted
On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler [off-list ref] wrote:
quoted
Here is the evtest result from placing two fingers on the touchpad,
then pressing the left trackpoint button 10 times, counting 1 second
between each press.  As you can see, only 3 presses and 3 release
events total were sent by the kernel, sometimes with many physical
button presses between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a firmware
problem. I have asked Chandler to reproduce it on his t450 and see if
we observe it on our laptops too.
Update on this one : Chandler reproduced it on the t450, so it's
likely that all of these sensors are affected. It is still unclear if
it is a firmware bug or a driver problem, but the chances are huge
that this is a firmware bug. Anyway, that's one more reason to push
towards RMI4 over SMBus for these sensors: the bug is not present with
this protocol :)
Well, that sounds fortunate :)

Do you still want the ps2emu-record log?  I didn't have time to run it
yesterday but should be able to do it this evening.

Regards,
  Nick

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Benjamin Tissoires <hidden>
Date: 2015-08-19 14:12:23

On Wed, Aug 19, 2015 at 10:10 AM, Nick Bowler [off-list ref] wrote:
On 2015-08-19, Benjamin Tissoires [off-list ref] wrote:
quoted
On Tue, Aug 18, 2015 at 3:06 PM, Benjamin Tissoires
[off-list ref] wrote:
[...]
quoted
quoted
On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler [off-list ref] wrote:
quoted
Here is the evtest result from placing two fingers on the touchpad,
then pressing the left trackpoint button 10 times, counting 1 second
between each press.  As you can see, only 3 presses and 3 release
events total were sent by the kernel, sometimes with many physical
button presses between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a firmware
problem. I have asked Chandler to reproduce it on his t450 and see if
we observe it on our laptops too.
Update on this one : Chandler reproduced it on the t450, so it's
likely that all of these sensors are affected. It is still unclear if
it is a firmware bug or a driver problem, but the chances are huge
that this is a firmware bug. Anyway, that's one more reason to push
towards RMI4 over SMBus for these sensors: the bug is not present with
this protocol :)
Well, that sounds fortunate :)

Do you still want the ps2emu-record log?  I didn't have time to run it
yesterday but should be able to do it this evening.
Yes, I still want it. It is less critical, but the more logs we have,
the better.

Cheers,
Benjamin
Regards,
  Nick

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2015-08-19 21:27:51

On Wed, Aug 19, 2015 at 09:52:00AM -0400, Benjamin Tissoires wrote:
On Tue, Aug 18, 2015 at 3:06 PM, Benjamin Tissoires
[off-list ref] wrote:
quoted
Hi Nick,

thanks for the report.

On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler [off-list ref] wrote:
quoted
Hi,

I'm not sure if this is actually a Linux issue but figured I'd at least
report it here to start...

I have a Lenovo Thinkpad X250, with the newfangled trackpoint buttons.
I have a problem with missing button press or release events: sometimes
pressing a button has no effect, and sometimes releasing a button has no
effect (the latter is especially annoying, as the button remains depressed
as far as any applications are concerned).

After some testing, the problem apparently depends on the position of my
hands over the touchpad.  I can reliably reproduce it as follows: place
two fingers on the touchpad, then press the button repeatedly.  Watching
with evtest, several events (could be either press or release) will
simply be missin, although the kernel never does anything weird like
send two release events in a row.  There are no problems if there are
0 or 1 fingers on the touchpad.

My current kernel version is 4.1.6, although the problem occurs in all
versions that I tried.

Here is the evtest result from placing two fingers on the touchpad, then
pressing the left trackpoint button 10 times, counting 1 second between
each press.  As you can see, only 3 presses and 3 release events total
were sent by the kernel, sometimes with many physical button presses
between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a firmware
problem. I have asked Chandler to reproduce it on his t450 and see if
we observe it on our laptops too.
Update on this one : Chandler reproduced it on the t450, so it's
likely that all of these sensors are affected. It is still unclear if
it is a firmware bug or a driver problem, but the chances are huge
that this is a firmware bug. Anyway, that's one more reason to push
towards RMI4 over SMBus for these sensors: the bug is not present with
this protocol :)
By the way, how are we going to handle Trackpoint (PS/2 device) with
touchpads in RMI4 mode? I do not recall anything in RMI4 spec, but I
looked at it quite some time ago.

Thanks.

-- 
Dmitry

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Stephen Chandler Paul <hidden>
Date: 2015-08-19 21:33:29

There is support in the spec for PS/2 guests believe it or not, it's
just mostly undocumented. Coincidentally, I was actually the one who
wrote the drivers for this in Benjamin's tree. Using that, we can
actually just create a serio port that goes through the rmi4 driver and
communicate with that using the normal TrackPoint driver. We have a
working implementation of this here: 
https://github.com/bentiss/linux/tree/synaptics-rmi4-smbus-v4.2-rc6%2B

Cheers,
	Stephen Chandler Paul

On Wed, 2015-08-19 at 14:27 -0700, Dmitry Torokhov wrote:
On Wed, Aug 19, 2015 at 09:52:00AM -0400, Benjamin Tissoires wrote:
quoted
On Tue, Aug 18, 2015 at 3:06 PM, Benjamin Tissoires
[off-list ref] wrote:
quoted
Hi Nick,

thanks for the report.

On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler <nbowler@draconx.ca
quoted
wrote:
Hi,

I'm not sure if this is actually a Linux issue but figured I'd
at least
report it here to start...

I have a Lenovo Thinkpad X250, with the newfangled trackpoint
buttons.
I have a problem with missing button press or release events:
sometimes
pressing a button has no effect, and sometimes releasing a
button has no
effect (the latter is especially annoying, as the button
remains depressed
as far as any applications are concerned).

After some testing, the problem apparently depends on the
position of my
hands over the touchpad.  I can reliably reproduce it as
follows: place
two fingers on the touchpad, then press the button repeatedly. 
 Watching
with evtest, several events (could be either press or release)
will
simply be missin, although the kernel never does anything weird
like
send two release events in a row.  There are no problems if
there are
0 or 1 fingers on the touchpad.

My current kernel version is 4.1.6, although the problem occurs
in all
versions that I tried.

Here is the evtest result from placing two fingers on the
touchpad, then
pressing the left trackpoint button 10 times, counting 1 second
between
each press.  As you can see, only 3 presses and 3 release
events total
were sent by the kernel, sometimes with many physical button
presses
between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a
firmware
problem. I have asked Chandler to reproduce it on his t450 and
see if
we observe it on our laptops too.
Update on this one : Chandler reproduced it on the t450, so it's
likely that all of these sensors are affected. It is still unclear
if
it is a firmware bug or a driver problem, but the chances are huge
that this is a firmware bug. Anyway, that's one more reason to push
towards RMI4 over SMBus for these sensors: the bug is not present
with
this protocol :)
By the way, how are we going to handle Trackpoint (PS/2 device) with
touchpads in RMI4 mode? I do not recall anything in RMI4 spec, but I
looked at it quite some time ago.

Thanks.

Re: PROBLEM: Missing events on thinkpad trackpoint buttons

From: Benjamin Tissoires <hidden>
Date: 2015-08-19 21:34:22

On Wed, Aug 19, 2015 at 5:27 PM, Dmitry Torokhov
[off-list ref] wrote:
On Wed, Aug 19, 2015 at 09:52:00AM -0400, Benjamin Tissoires wrote:
quoted
On Tue, Aug 18, 2015 at 3:06 PM, Benjamin Tissoires
[off-list ref] wrote:
quoted
Hi Nick,

thanks for the report.

On Mon, Aug 17, 2015 at 10:31 PM, Nick Bowler [off-list ref] wrote:
quoted
Hi,

I'm not sure if this is actually a Linux issue but figured I'd at least
report it here to start...

I have a Lenovo Thinkpad X250, with the newfangled trackpoint buttons.
I have a problem with missing button press or release events: sometimes
pressing a button has no effect, and sometimes releasing a button has no
effect (the latter is especially annoying, as the button remains depressed
as far as any applications are concerned).

After some testing, the problem apparently depends on the position of my
hands over the touchpad.  I can reliably reproduce it as follows: place
two fingers on the touchpad, then press the button repeatedly.  Watching
with evtest, several events (could be either press or release) will
simply be missin, although the kernel never does anything weird like
send two release events in a row.  There are no problems if there are
0 or 1 fingers on the touchpad.

My current kernel version is 4.1.6, although the problem occurs in all
versions that I tried.

Here is the evtest result from placing two fingers on the touchpad, then
pressing the left trackpoint button 10 times, counting 1 second between
each press.  As you can see, only 3 presses and 3 release events total
were sent by the kernel, sometimes with many physical button presses
between the press and its corresponding release:
OK, so this is definitively weird. My first idea would be a firmware
problem. I have asked Chandler to reproduce it on his t450 and see if
we observe it on our laptops too.
Update on this one : Chandler reproduced it on the t450, so it's
likely that all of these sensors are affected. It is still unclear if
it is a firmware bug or a driver problem, but the chances are huge
that this is a firmware bug. Anyway, that's one more reason to push
towards RMI4 over SMBus for these sensors: the bug is not present with
this protocol :)
By the way, how are we going to handle Trackpoint (PS/2 device) with
touchpads in RMI4 mode? I do not recall anything in RMI4 spec, but I
looked at it quite some time ago.
Yes, there is nothing public in the spec for the RMI4 PS/2
pass-through mode. With a little help of Synaptics, Chandler
implemented it (it's function 03):
https://github.com/bentiss/linux/commit/b0cea92f56db9fc521a3ffaad534d91ef33466c8

This might not be the last version I have on my laptop, but it should
be close enough (if you also add the reporting of the extra buttons
that are sent through the GPIO function - 30).

Basically, I am running this code on a day to day basis, and we have
spotted most of the bugs now I think. It is stable and works better
than the PS/2 implementation because we don't have the bugs inherent
to the "report 2 slots but 5 actually".

Cheers,
Benjamin

PS: looks like Chandler beat me at answering
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help