Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: mt - document devices reporting more touches than slots

Some devices are capable of identifying and/or tracking more contacts than
they can report to the driver. Document how a driver should handle this,
and what userspace should expect.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

authored by

Daniel Kurtz and committed by
Dmitry Torokhov
a93bd154 a6ca40c1

+14
+14
Documentation/input/multi-touch-protocol.txt
··· 65 65 end. Upon receiving an MT event, one simply updates the appropriate 66 66 attribute of the current slot. 67 67 68 + Some devices identify and/or track more contacts than they can report to the 69 + driver. A driver for such a device should associate one type B slot with each 70 + contact that is reported by the hardware. Whenever the identity of the 71 + contact associated with a slot changes, the driver should invalidate that 72 + slot by changing its ABS_MT_TRACKING_ID. If the hardware signals that it is 73 + tracking more contacts than it is currently reporting, the driver should use 74 + a BTN_TOOL_*TAP event to inform userspace of the total number of contacts 75 + being tracked by the hardware at that moment. The driver should do this by 76 + explicitly sending the corresponding BTN_TOOL_*TAP event and setting 77 + use_count to false when calling input_mt_report_pointer_emulation(). 78 + The driver should only advertise as many slots as the hardware can report. 79 + Userspace can detect that a driver can report more total contacts than slots 80 + by noting that the largest supported BTN_TOOL_*TAP event is larger than the 81 + total number of type B slots reported in the absinfo for the ABS_MT_SLOT axis. 68 82 69 83 Protocol Example A 70 84 ------------------