--- v1
+++ v4
@@ -1,26 +1,43 @@
-From: Daniel Kurtz <djkurtz@chromium.org>
+Hello,
-Hello,
+----
+For v4:
+ Patch 4 & 7:
+ Per Henrik: Do not report synaptics 'w' as ABS_MT_TOUCH_MAJOR. This has
+ the nice side affect of cleaning up slot reporting.
+
+ Patch 6 (new):
+ Per Chase: Document 'report more touches than slots' behavior.
+----
This patch set (against next) is intended to add support for synaptics
"image sensor" touchpads.
-Patches 1-8 clean up the current driver slightly and prepare for the image
+Patches 1-3 clean up the current driver slightly and prepare for the image
sensor patches which follow.
-Patches 9-11 add up to 3 finger support for image sensor touchpads.
+Patches 4-7 add 3 finger support for image sensor touchpads.
Image sensors do not suffer from the finger tracking issues that plagued
the earlier "profile sensors", and which required the invention of "semi-mt"
-(which reports a bounding box around two fingers instead of the fingers
+(Semi-mt reports a bounding box around two fingers instead of the fingers
themselves). Instead, the image sensors report the actual positions of two
-fingers using the same "Advanced Gesture Mode". Unfortunately, the limitations
-of the Synaptics PS/2 protocol make it difficult to keep track of which two
-fingers are being reported at any given time.
+fingers using the same "Advanced Gesture Mode". This driver uses two MT-B slots
+to report these two fingers to userspace. In addition, it will also report
+the total number of fingers using BTN_TOOL_*TAP EV_KEY events. This behavior
+is documented in the multi-touch-protocol document.
-Patch 12 adds up to 5 finger support.
+Userspace drivers should be aware that the number of fingers reported via
+BTN_TOOL_*TAP can be greater than the total number MT-B slots with non-negative
+track_ids. Upon opening the device node, userspace should query the maximum
+values supported ABS_MT_SLOT, and note the number of supported BTN_TOOL_*TAP
+events.
+
+Patches 7-8 add 4 and 5 finger support.
In fact, the image sensor touchpads actually track 5 fingers while reporting
-just 2 finger positions. This patch tracks which fingers are being reported,
-and passes them up to userspace using 5 MT-B slots.
+just 2 finger positions. These patches add support for properly tracking the
+reported slots through 4 and 5 finger transitions, while always reporting two of
+them via 2 MT-B slots. In addition, a new event, EV_KEY/BTN_TOOL_QUINTTAP, is
+added to the event subsystem to allow reporting up to 5 fingers.
These patches are similar to, and inspired by, a similar patchset recently
submitted by Derek Foreman and Daniel Stone. However, it is not directly built
@@ -29,26 +46,24 @@
Thanks,
Daniel
-Daniel Kurtz (12):
- Input: synaptics - cleanup 0x0c query documentation
- Input: synaptics - do not invert y if 0
- Input: synaptics - fix minimum reported ABS_TOOL_WIDTH
- Input: synaptics - set resolution for MT_POSITION_X/Y axes
- Input: synaptics - process button bits in AGM packets
- Input: synaptics - fuzz position if touchpad reports reduced
- filtering
- Input: synaptics - rename synaptics_data.mt to agm
- Input: synaptics - rename set_slot to be more descriptive
+
+Daniel Kurtz (9):
+ Input: synaptics - refactor y inversion
+ Input: synaptics - refactor agm packet parsing
+ Input: synaptics - refactor initialization of abs position axes
Input: synaptics - add image sensor support
Input: synaptics - decode AGM packet types
+ Input: mt - document devices reporting more touches than slots
Input: synaptics - process finger (<=3) transitions
+ Input: add BTN_TOOL_QUINTTAP for reporting 5 fingers on touchpad
Input: synaptics - process finger (<=5) transitions
- drivers/input/mouse/synaptics.c | 442 +++++++++++++++++++++++++++++++++++----
- drivers/input/mouse/synaptics.h | 41 +++-
- include/linux/input.h | 1 +
- 3 files changed, 440 insertions(+), 44 deletions(-)
+ Documentation/input/multi-touch-protocol.txt | 14 +
+ drivers/input/input-mt.c | 1 +
+ drivers/input/mouse/synaptics.c | 489 ++++++++++++++++++++++++--
+ drivers/input/mouse/synaptics.h | 27 ++-
+ include/linux/input.h | 1 +
+ 5 files changed, 495 insertions(+), 37 deletions(-)
--
1.7.3.1
-