Re: [PATCH] Input: Add MT_TOOL_PALM

From: Peter Hutterer
Date: Thu Mar 19 2015 - 18:42:22 EST


On Wed, Mar 18, 2015 at 03:26:35PM -0700, Charlie Mooney wrote:
> Currently there are only two "tools" that can be specified by a
> multi-touch driver: MT_TOOL_FINGER and MT_TOOL_PEN. In working with
> Elan (The touch vendor) and discussing their next-gen devices it
> seems that it will be useful to have more tools so that their devices
> can give the upper layers of the stack hints as to what is touching
> the sensor.
>
> In particular they have new experimental firmware that can better
> differentiate between palms vs fingertips and would like to plumb a
> patch so that we can use their hints in higher-level gesture soft-
> ware. The firmware on the device can reasonably do a better job of
> palm detection because it has access to all of the raw sensor readings
> as opposed to just the width/pressure/etc that are exposed by the
> driver. As such, the firmware can characterize what a palm looks like
> in much finer-grained detail and this change would allow such a
> device to share its findings with the kernel.
>
> Signed-off-by: Charlie Mooney <charliemooney@xxxxxxxxxxxx>

Acked-by: Peter Hutterer <peter.hutterer@xxxxxxxxx>

Cheers,
Peter

> ---
> Documentation/input/multi-touch-protocol.txt | 9 ++++++---
> include/uapi/linux/input.h | 3 ++-
> 2 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/input/multi-touch-protocol.txt b/Documentation/input/multi-touch-protocol.txt
> index 7b4f59c..b85d000 100644
> --- a/Documentation/input/multi-touch-protocol.txt
> +++ b/Documentation/input/multi-touch-protocol.txt
> @@ -312,9 +312,12 @@ ABS_MT_TOOL_TYPE
>
> The type of approaching tool. A lot of kernel drivers cannot distinguish
> between different tool types, such as a finger or a pen. In such cases, the
> -event should be omitted. The protocol currently supports MT_TOOL_FINGER and
> -MT_TOOL_PEN [2]. For type B devices, this event is handled by input core;
> -drivers should instead use input_mt_report_slot_state().
> +event should be omitted. The protocol currently supports MT_TOOL_FINGER,
> +MT_TOOL_PEN, and MT_TOOL_PALM [2]. For type B devices, this event is handled
> +by input core; drivers should instead use input_mt_report_slot_state().
> +A contact's ABS_MT_TOOL_TYPE may change over time while still touching the
> +device, because the firmware may not be able to determine which tool is being
> +used when it first appears.
>
> ABS_MT_BLOB_ID
>
> diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
> index b0a8130..2f62ab2 100644
> --- a/include/uapi/linux/input.h
> +++ b/include/uapi/linux/input.h
> @@ -973,7 +973,8 @@ struct input_keymap_entry {
> */
> #define MT_TOOL_FINGER 0
> #define MT_TOOL_PEN 1
> -#define MT_TOOL_MAX 1
> +#define MT_TOOL_PALM 2
> +#define MT_TOOL_MAX 2
>
> /*
> * Values describing the status of a force-feedback effect
> --
> 2.1.2
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/