lkml.org 
[lkml]   [2018]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC/PATCH] Input: make input_report_slot_state() return boolean
From
Date
On 06/05/2018 07:16 PM, Dmitry Torokhov wrote:

> Let's make input_report_slot_state() return boolean representing whether
> the contact is active or not. This will allow writing code like:
>
> if (input_mt_report_slot_state(input, obj->mt_tool,
> obj->type != RMI_2D_OBJECT_NONE) {
>
> input_event(sensor->input, EV_ABS, ABS_MT_POSITION_X, obj->x);
> input_event(sensor->input, EV_ABS, ABS_MT_POSITION_Y, obj->y);
> ...
> }
>
> instead of:
>
> input_mt_report_slot_state(input, obj->mt_tool,
> obj->type != RMI_2D_OBJECT_NONE);
> if (obj->type != RMI_2D_OBJECT_NONE) {
> input_event(sensor->input, EV_ABS, ABS_MT_POSITION_X, obj->x);
> input_event(sensor->input, EV_ABS, ABS_MT_POSITION_Y, obj->y);
> ...
> }
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> drivers/input/input-mt.c | 10 +++++++---
> include/linux/input/mt.h | 2 +-
> 2 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/input/input-mt.c b/drivers/input/input-mt.c
> index 7ca4b318ed419..4a69716e54614 100644
> --- a/drivers/input/input-mt.c
> +++ b/drivers/input/input-mt.c
> @@ -131,8 +131,10 @@ EXPORT_SYMBOL(input_mt_destroy_slots);
> * inactive, or if the tool type is changed, a new tracking id is
> * assigned to the slot. The tool type is only reported if the
> * corresponding absbit field is set.
> + *
> + * Returns true if contact is active.
> */
> -void input_mt_report_slot_state(struct input_dev *dev,
> +bool input_mt_report_slot_state(struct input_dev *dev,
> unsigned int tool_type, bool active)
> {
> struct input_mt *mt = dev->mt;
> @@ -140,14 +142,14 @@ void input_mt_report_slot_state(struct input_dev *dev,
> int id;
>
> if (!mt)
> - return;
> + return false;
>
> slot = &mt->slots[mt->slot];
> slot->frame = mt->frame;
>
> if (!active) {
> input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
> - return;
> + return false;
> }
>
> id = input_mt_get_value(slot, ABS_MT_TRACKING_ID);
> @@ -156,6 +158,8 @@ void input_mt_report_slot_state(struct input_dev *dev,
>
> input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, id);
> input_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, tool_type);
> +
> + return true;
> }
> EXPORT_SYMBOL(input_mt_report_slot_state);
>
> diff --git a/include/linux/input/mt.h b/include/linux/input/mt.h
> index d7188de4db968..3f4bf60b0bb55 100644
> --- a/include/linux/input/mt.h
> +++ b/include/linux/input/mt.h
> @@ -100,7 +100,7 @@ static inline bool input_is_mt_axis(int axis)
> return axis == ABS_MT_SLOT || input_is_mt_value(axis);
> }
>
> -void input_mt_report_slot_state(struct input_dev *dev,
> +bool input_mt_report_slot_state(struct input_dev *dev,
> unsigned int tool_type, bool active);
>
> void input_mt_report_finger_count(struct input_dev *dev, int count);
  Reviewed-by: Henrik Rydberg <rydberg@bitmath.org>

Thanks, Dmitry.

Henrik

\
 
 \ /
  Last update: 2018-06-05 20:55    [W:0.044 / U:2.584 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site