<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Huge pointer jumps due to touchpad firmware bug"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76722">76722</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>wayland-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Huge pointer jumps due to touchpad firmware bug
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>patrakov@gmail.com
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>libinput
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Wayland
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=96513" name="attach_96513" title="Recording that contains the bug at second 249">attachment 96513</a> <a href="attachment.cgi?id=96513&action=edit" title="Recording that contains the bug at second 249">[details]</a></span>
Recording that contains the bug at second 249

To reproduce the bug, get the affected touchpad (e.g. "SynPS/2 Synaptics
TouchPad", as described in the attachment), move the cursor as you would
normally do using a finger on the right hand, then use the finger on the left
hand to click in the bottom area of the touchpad. Usually the driver would
register the click as expected, but sometimes it would move the pointer to the
lower left corner and click there.

I have managed to capture one of these cases using evemu-record. The recording
is attached. Please ignore the first 240 seconds or so, they contain some
movements, scrolling and clicks that I am afraid to remove manually.

The interesting part is:

E: 249.206319 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
E: 249.218008 0003 0035 3764    # EV_ABS / ABS_MT_POSITION_X    3764
E: 249.218008 0003 0036 2221    # EV_ABS / ABS_MT_POSITION_Y    2221
E: 249.218008 0003 003a 0065    # EV_ABS / ABS_MT_PRESSURE      65
E: 249.218008 0003 0000 3764    # EV_ABS / ABS_X                3764
E: 249.218008 0003 0001 2216    # EV_ABS / ABS_Y                2216
E: 249.218008 0003 0018 0065    # EV_ABS / ABS_PRESSURE         65
E: 249.218008 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
E: 249.230881 0003 0035 3752    # EV_ABS / ABS_MT_POSITION_X    3752
E: 249.230881 0003 003a 0046    # EV_ABS / ABS_MT_PRESSURE      46
E: 249.230881 0003 0000 3758    # EV_ABS / ABS_X                3758
E: 249.230881 0003 0018 0046    # EV_ABS / ABS_PRESSURE         46
E: 249.230881 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
E: 249.242648 0003 0035 1640    # EV_ABS / ABS_MT_POSITION_X    1640
E: 249.242648 0003 0036 4681    # EV_ABS / ABS_MT_POSITION_Y    4681
E: 249.242648 0003 003a 0025    # EV_ABS / ABS_MT_PRESSURE      25
E: 249.242648 0003 0000 1640    # EV_ABS / ABS_X                1640
E: 249.242648 0003 0001 4681    # EV_ABS / ABS_Y                4681
E: 249.242648 0003 0018 0025    # EV_ABS / ABS_PRESSURE         25
E: 249.242648 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
E: 249.254568 0003 0035 1648    # EV_ABS / ABS_MT_POSITION_X    1648
E: 249.254568 0003 003a 0027    # EV_ABS / ABS_MT_PRESSURE      27
E: 249.254568 0003 0000 1644    # EV_ABS / ABS_X                1644
E: 249.254568 0003 0018 0027    # EV_ABS / ABS_PRESSURE         27

As you see, the touchpad reports a huge jump in the touch position
without getting a new tracking ID. I.e. produces garbage data. A
non-buggy touchpad would have recognized that this is in fact a
different finger.

So, I would like libinput to recognize such huge jumps (e.g. any
movements by more than 15% of the touchpad width in less than 0.03
seconds) as firmware bugs and treat them as if this indicated a
completely new touch.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>