Bug 89800

Summary: More than 4 fingers results in "invalid event, no fingers are down"
Product: Wayland Reporter: Jason Gerecke <killertofu>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Jason Gerecke 2015-03-28 00:30:51 UTC
When running the 'event-debug' tool with an Intuos Pro, the message "libinput error: libinput bug: invalid event, no fingers are down" will appear several times after placing a fifth finger on the touchpad.

Running the tool with GDB, it appears that the "if we have too many touches" case inside 'tp_unhover_touches' (evdev-mt-touchpad.c) is satisfied and subsequently clears out all active touches once the fifth finger goes down. This is because "nfake_touches" should be zero at this point due to the kernel switching out BTN_TOOL_QUADTAP for BTN_TOOL_QUINTTAP (which isn't handled by libinput).

This error can be delayed until 6 fingers are in contact by handling BTN_TOOL_QUINTTAP, but it isn't really a solution (that's the last *TAP tool reported by the kernel, and the touchpad can report far more). Libinput needs to sense when the *TAP tool "overflows" and rely on slot state instead.
Comment 2 Peter Hutterer 2015-04-09 04:11:44 UTC
fwiw, this error message can also be triggered by the kernel re-using a slot immediately without a EV_SYN in between, see the patch for Bug 88903 here: https://patchwork.kernel.org/patch/6123751/
Comment 4 Peter Hutterer 2015-04-16 08:13:14 UTC
commit 8b1df055163ab72ef71215fe212ea97852e7d460
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 9 14:23:16 2015 +1000

    touchpad: detect fake finger overflow after BTN_TOOL_QUINTTAB

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.