--- v2
+++ v3
@@ -1,5 +1,3 @@
-From: Daniel Kurtz <djkurtz@chromium.org>
-
Synaptics makes (at least) two kinds of touchpad sensors:
* Older pads use a profile sensor that could only infer the location
of individual fingers based on the projection of their profiles
@@ -15,17 +13,17 @@
The SGM packets have w={0,1} and contain full resolution finger data
Profile sensors try to report the "upper" (larger y value) finger in
- the SGM packet, and the lower (smaller y value) in the AGM packet.
- However, due to the nature of the profile sensor, they easily get
- confused when fingers cross, and can start reporting the x-coordinate
- of one with the y-coordinate of the other. Thus, for profile
- sensors, "semi-mt" was created, which reports a "bounding box"
- created by pairing min and max coordinates of the two pairs of
- reported fingers.
+the SGM packet, and the lower (smaller y value) in the AGM packet.
+However, due to the nature of the profile sensor, they easily get
+confused when fingers cross, and can start reporting the x-coordinate
+of one with the y-coordinate of the other. Thus, for profile
+sensors, "semi-mt" was created, which reports a "bounding box"
+created by pairing min and max coordinates of the two pairs of
+reported fingers.
Image sensors can report the actual coordinates of two of the fingers
- present. This patch detects if the touchpad is an image sensor and
- reports finger data using the MT-B protocol.
+present. This patch detects if the touchpad is an image sensor and
+reports finger data using the MT-B protocol.
NOTE: This patch only adds partial support for 2-finger gestures.
The proper interpretation of the slot contents when more than
@@ -182,7 +180,7 @@
input_mt_init_slots(dev, 2);
set_abs_position_params(dev, priv, ABS_MT_POSITION_X,
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
-index da8e969..34296b9 100644
+index a9efbf3..0ea7616 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -74,6 +74,8 @@
@@ -195,7 +193,7 @@
*/
#define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100000) /* 1-button ClickPad */
@@ -82,6 +84,7 @@
- #define SYN_CAP_MIN_DIMENSIONS(ex0c) ((ex0c) & 0x000200)
+ #define SYN_CAP_MIN_DIMENSIONS(ex0c) ((ex0c) & 0x002000)
#define SYN_CAP_ADV_GESTURE(ex0c) ((ex0c) & 0x080000)
#define SYN_CAP_REDUCED_FILTERING(ex0c) ((ex0c) & 0x000400)
+#define SYN_CAP_IMAGE_SENSOR(ex0c) ((ex0c) & 0x000800)