Bug 89800 - More than 4 fingers results in "invalid event, no fingers are down"
Summary: More than 4 fingers results in "invalid event, no fingers are down"
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-28 00:30 UTC by Jason Gerecke
Modified: 2015-04-16 08:13 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

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.