Commit e42a98b5 authored by Henrik Rydberg's avatar Henrik Rydberg

input: mt: Add hovering distance axis

Touch devices capable of hovering, i.e., fingers detected a
distance from the surface, are not supported by the current
input MT protocol. This patch adds ABS_MT_DISTANCE, which may
be used to indicate the distance between the contact and the
surface.
Signed-off-by: default avatarHenrik Rydberg <rydberg@euromail.se>
parent c5f4dec1
...@@ -161,7 +161,8 @@ against the glass. The inner region will increase, and in general, the ...@@ -161,7 +161,8 @@ against the glass. The inner region will increase, and in general, the
ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than
unity, is related to the contact pressure. For pressure-based devices, unity, is related to the contact pressure. For pressure-based devices,
ABS_MT_PRESSURE may be used to provide the pressure on the contact area ABS_MT_PRESSURE may be used to provide the pressure on the contact area
instead. instead. Devices capable of contact hovering can use ABS_MT_DISTANCE to
indicate the distance between the contact and the surface.
In addition to the MAJOR parameters, the oval shape of the contact can be In addition to the MAJOR parameters, the oval shape of the contact can be
described by adding the MINOR parameters, such that MAJOR and MINOR are the described by adding the MINOR parameters, such that MAJOR and MINOR are the
...@@ -213,6 +214,12 @@ The pressure, in arbitrary units, on the contact area. May be used instead ...@@ -213,6 +214,12 @@ The pressure, in arbitrary units, on the contact area. May be used instead
of TOUCH and WIDTH for pressure-based devices or any device with a spatial of TOUCH and WIDTH for pressure-based devices or any device with a spatial
signal intensity distribution. signal intensity distribution.
ABS_MT_DISTANCE
The distance, in surface units, between the contact and the surface. Zero
distance means the contact is touching the surface. A positive number means
the contact is hovering above the surface.
ABS_MT_ORIENTATION ABS_MT_ORIENTATION
The orientation of the ellipse. The value should describe a signed quarter The orientation of the ellipse. The value should describe a signed quarter
......
...@@ -733,11 +733,12 @@ struct input_keymap_entry { ...@@ -733,11 +733,12 @@ struct input_keymap_entry {
#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ #define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ #define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ #define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */
#ifdef __KERNEL__ #ifdef __KERNEL__
/* Implementation details, userspace should not care about these */ /* Implementation details, userspace should not care about these */
#define ABS_MT_FIRST ABS_MT_TOUCH_MAJOR #define ABS_MT_FIRST ABS_MT_TOUCH_MAJOR
#define ABS_MT_LAST ABS_MT_PRESSURE #define ABS_MT_LAST ABS_MT_DISTANCE
#endif #endif
#define ABS_MAX 0x3f #define ABS_MAX 0x3f
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment