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