All of lore.kernel.org
 help / color / mirror / Atom feed
From: Henrik Rydberg <rydberg@bitmath.org>
To: Jiada Wang <jiada_wang@mentor.com>,
	jikos@kernel.org, benjamin.tissoires@redhat.com,
	dmitry.torokhov@gmail.com, nick@shmanahar.org
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	erosca@de.adit-jv.com, Andrew_Gabbasov@mentor.com
Subject: Re: [PATCH v5 01/48] Input: introduce input_mt_report_slot_inactive
Date: Wed, 6 Nov 2019 22:11:56 +0100	[thread overview]
Message-ID: <bb392c48-3d1e-cb79-046b-355b12331e8a@bitmath.org> (raw)
In-Reply-To: <20191106070146.18759-2-jiada_wang@mentor.com>

On 2019-11-06 08:00, Jiada Wang wrote:

> input_mt_report_slot_state() ignores the tool when the slot is closed.
> which has caused a bit of confusion.
> This patch introduces input_mt_report_slot_inactive() to report slot
> inactive state.
> replaces all input_mt_report_slot_state() with
> input_mt_report_slot_inactive() in case of close of slot.
>
> Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Signed-off-by: Jiada Wang <jiada_wang@mentor.com>

     Reviewed-by: Henrik Rydberg <rydberg@bitmath.org>

Thanks,
Henrik

> ---
>   drivers/hid/hid-alps.c                     | 3 +--
>   drivers/hid/hid-multitouch.c               | 6 ++----
>   drivers/input/input-mt.c                   | 2 +-
>   drivers/input/misc/xen-kbdfront.c          | 2 +-
>   drivers/input/mouse/elan_i2c_core.c        | 2 +-
>   drivers/input/touchscreen/atmel_mxt_ts.c   | 7 +++----
>   drivers/input/touchscreen/cyttsp4_core.c   | 5 ++---
>   drivers/input/touchscreen/cyttsp_core.c    | 2 +-
>   drivers/input/touchscreen/melfas_mip4.c    | 4 ++--
>   drivers/input/touchscreen/mms114.c         | 2 +-
>   drivers/input/touchscreen/raspberrypi-ts.c | 2 +-
>   drivers/input/touchscreen/stmfts.c         | 2 +-
>   include/linux/input/mt.h                   | 5 +++++
>   13 files changed, 22 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/hid/hid-alps.c b/drivers/hid/hid-alps.c
> index ae79a7c66737..36ca1d815d53 100644
> --- a/drivers/hid/hid-alps.c
> +++ b/drivers/hid/hid-alps.c
> @@ -387,8 +387,7 @@ static int u1_raw_event(struct alps_dev *hdata, u8 *data, int size)
>   				input_report_abs(hdata->input,
>   					ABS_MT_PRESSURE, z);
>   			} else {
> -				input_mt_report_slot_state(hdata->input,
> -					MT_TOOL_FINGER, 0);
> +				input_mt_report_slot_inactive(hdata->input);
>   			}
>   		}
>   
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index 3cfeb1629f79..15e6c04a76dd 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -896,7 +896,7 @@ static void mt_release_pending_palms(struct mt_device *td,
>   		clear_bit(slotnum, app->pending_palm_slots);
>   
>   		input_mt_slot(input, slotnum);
> -		input_mt_report_slot_state(input, MT_TOOL_PALM, false);
> +		input_mt_report_slot_inactive(input);
>   
>   		need_sync = true;
>   	}
> @@ -1640,9 +1640,7 @@ static void mt_release_contacts(struct hid_device *hid)
>   		if (mt) {
>   			for (i = 0; i < mt->num_slots; i++) {
>   				input_mt_slot(input_dev, i);
> -				input_mt_report_slot_state(input_dev,
> -							   MT_TOOL_FINGER,
> -							   false);
> +				input_mt_report_slot_inactive(input_dev);
>   			}
>   			input_mt_sync_frame(input_dev);
>   			input_sync(input_dev);
> diff --git a/drivers/input/input-mt.c b/drivers/input/input-mt.c
> index a81e14148407..7626fe5bfe44 100644
> --- a/drivers/input/input-mt.c
> +++ b/drivers/input/input-mt.c
> @@ -145,7 +145,7 @@ bool input_mt_report_slot_state(struct input_dev *dev,
>   	slot->frame = mt->frame;
>   
>   	if (!active) {
> -		input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
> +		input_mt_report_slot_inactive(dev);
>   		return false;
>   	}
>   
> diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c
> index 24bc5c5d876f..a1bba722b234 100644
> --- a/drivers/input/misc/xen-kbdfront.c
> +++ b/drivers/input/misc/xen-kbdfront.c
> @@ -146,7 +146,7 @@ static void xenkbd_handle_mt_event(struct xenkbd_info *info,
>   		break;
>   
>   	case XENKBD_MT_EV_UP:
> -		input_mt_report_slot_state(info->mtouch, MT_TOOL_FINGER, false);
> +		input_mt_report_slot_inactive(info->mtouch);
>   		break;
>   
>   	case XENKBD_MT_EV_SYN:
> diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
> index 8719da540383..3f9354baac4b 100644
> --- a/drivers/input/mouse/elan_i2c_core.c
> +++ b/drivers/input/mouse/elan_i2c_core.c
> @@ -938,7 +938,7 @@ static void elan_report_contact(struct elan_tp_data *data,
>   		input_report_abs(input, ABS_MT_TOUCH_MINOR, minor);
>   	} else {
>   		input_mt_slot(input, contact_num);
> -		input_mt_report_slot_state(input, MT_TOOL_FINGER, false);
> +		input_mt_report_slot_inactive(input);
>   	}
>   }
>   
> diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
> index 24c4b691b1c9..6e758af343ea 100644
> --- a/drivers/input/touchscreen/atmel_mxt_ts.c
> +++ b/drivers/input/touchscreen/atmel_mxt_ts.c
> @@ -822,8 +822,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
>   		 * have happened.
>   		 */
>   		if (status & MXT_T9_RELEASE) {
> -			input_mt_report_slot_state(input_dev,
> -						   MT_TOOL_FINGER, 0);
> +			input_mt_report_slot_inactive(input_dev);
>   			mxt_input_sync(data);
>   		}
>   
> @@ -839,7 +838,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
>   		input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, area);
>   	} else {
>   		/* Touch no longer active, close out slot */
> -		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 0);
> +		input_mt_report_slot_inactive(input_dev);
>   	}
>   
>   	data->update_input = true;
> @@ -947,7 +946,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
>   		dev_dbg(dev, "[%u] release\n", id);
>   
>   		/* close out slot */
> -		input_mt_report_slot_state(input_dev, 0, 0);
> +		input_mt_report_slot_inactive(input_dev);
>   	}
>   
>   	data->update_input = true;
> diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c
> index 4b22d49a0f49..a3a85e2348a2 100644
> --- a/drivers/input/touchscreen/cyttsp4_core.c
> +++ b/drivers/input/touchscreen/cyttsp4_core.c
> @@ -744,8 +744,7 @@ static void cyttsp4_report_slot_liftoff(struct cyttsp4_mt_data *md,
>   
>   	for (t = 0; t < max_slots; t++) {
>   		input_mt_slot(md->input, t);
> -		input_mt_report_slot_state(md->input,
> -			MT_TOOL_FINGER, false);
> +		input_mt_report_slot_inactive(md->input);
>   	}
>   }
>   
> @@ -845,7 +844,7 @@ static void cyttsp4_final_sync(struct input_dev *input, int max_slots, int *ids)
>   		if (ids[t])
>   			continue;
>   		input_mt_slot(input, t);
> -		input_mt_report_slot_state(input, MT_TOOL_FINGER, false);
> +		input_mt_report_slot_inactive(input);
>   	}
>   
>   	input_sync(input);
> diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c
> index 3f5d463dbeed..697aa2c158f7 100644
> --- a/drivers/input/touchscreen/cyttsp_core.c
> +++ b/drivers/input/touchscreen/cyttsp_core.c
> @@ -340,7 +340,7 @@ static void cyttsp_report_tchdata(struct cyttsp *ts)
>   			continue;
>   
>   		input_mt_slot(input, i);
> -		input_mt_report_slot_state(input, MT_TOOL_FINGER, false);
> +		input_mt_report_slot_inactive(input);
>   	}
>   
>   	input_sync(input);
> diff --git a/drivers/input/touchscreen/melfas_mip4.c b/drivers/input/touchscreen/melfas_mip4.c
> index 247c3aaba2d8..f67efdd040b2 100644
> --- a/drivers/input/touchscreen/melfas_mip4.c
> +++ b/drivers/input/touchscreen/melfas_mip4.c
> @@ -391,7 +391,7 @@ static void mip4_clear_input(struct mip4_ts *ts)
>   	/* Screen */
>   	for (i = 0; i < MIP4_MAX_FINGERS; i++) {
>   		input_mt_slot(ts->input, i);
> -		input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, 0);
> +		input_mt_report_slot_inactive(ts->input);
>   	}
>   
>   	/* Keys */
> @@ -534,7 +534,7 @@ static void mip4_report_touch(struct mip4_ts *ts, u8 *packet)
>   	} else {
>   		/* Release event */
>   		input_mt_slot(ts->input, id);
> -		input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, 0);
> +		input_mt_report_slot_inactive(ts->input);
>   	}
>   
>   	input_mt_sync_frame(ts->input);
> diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c
> index a5ab774da4cc..8112bd77afae 100644
> --- a/drivers/input/touchscreen/mms114.c
> +++ b/drivers/input/touchscreen/mms114.c
> @@ -550,7 +550,7 @@ static int __maybe_unused mms114_suspend(struct device *dev)
>   	/* Release all touch */
>   	for (id = 0; id < MMS114_MAX_TOUCH; id++) {
>   		input_mt_slot(input_dev, id);
> -		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, false);
> +		input_mt_report_slot_inactive(input_dev);
>   	}
>   
>   	input_mt_report_pointer_emulation(input_dev, true);
> diff --git a/drivers/input/touchscreen/raspberrypi-ts.c b/drivers/input/touchscreen/raspberrypi-ts.c
> index 69881265d121..147ea4f8f87b 100644
> --- a/drivers/input/touchscreen/raspberrypi-ts.c
> +++ b/drivers/input/touchscreen/raspberrypi-ts.c
> @@ -102,7 +102,7 @@ static void rpi_ts_poll(struct input_polled_dev *dev)
>   	released_ids = ts->known_ids & ~modified_ids;
>   	for_each_set_bit(i, &released_ids, RPI_TS_MAX_SUPPORTED_POINTS) {
>   		input_mt_slot(input, i);
> -		input_mt_report_slot_state(input, MT_TOOL_FINGER, 0);
> +		input_mt_report_slot_inactive(input);
>   		modified_ids &= ~(BIT(i));
>   	}
>   	ts->known_ids = modified_ids;
> diff --git a/drivers/input/touchscreen/stmfts.c b/drivers/input/touchscreen/stmfts.c
> index b6f95f20f924..b54cc64e4ea6 100644
> --- a/drivers/input/touchscreen/stmfts.c
> +++ b/drivers/input/touchscreen/stmfts.c
> @@ -198,7 +198,7 @@ static void stmfts_report_contact_release(struct stmfts_data *sdata,
>   	u8 slot_id = (event[0] & STMFTS_MASK_TOUCH_ID) >> 4;
>   
>   	input_mt_slot(sdata->input, slot_id);
> -	input_mt_report_slot_state(sdata->input, MT_TOOL_FINGER, false);
> +	input_mt_report_slot_inactive(sdata->input);
>   
>   	input_sync(sdata->input);
>   }
> diff --git a/include/linux/input/mt.h b/include/linux/input/mt.h
> index 9e409bb13642..3b8580bd33c1 100644
> --- a/include/linux/input/mt.h
> +++ b/include/linux/input/mt.h
> @@ -100,6 +100,11 @@ static inline bool input_is_mt_axis(int axis)
>   bool input_mt_report_slot_state(struct input_dev *dev,
>   				unsigned int tool_type, bool active);
>   
> +static inline void input_mt_report_slot_inactive(struct input_dev *dev)
> +{
> +	input_mt_report_slot_state(dev, 0, false);
> +}
> +
>   void input_mt_report_finger_count(struct input_dev *dev, int count);
>   void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count);
>   void input_mt_drop_unused(struct input_dev *dev);

  reply	other threads:[~2019-11-06 21:10 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-06  7:00 [PATCH v5 00/48] atmel_mxt_ts misc Jiada Wang
2019-11-06  7:00 ` [PATCH v5 01/48] Input: introduce input_mt_report_slot_inactive Jiada Wang
2019-11-06 21:11   ` Henrik Rydberg [this message]
2019-11-14  9:44   ` [Input] 9290ec3cea: suspend_stress.fail kernel test robot
2019-11-14  9:44     ` kernel test robot
2019-11-15 19:29     ` Dmitry Torokhov
2019-11-15 19:29       ` Dmitry Torokhov
2019-11-18  8:01       ` kernel test robot
2019-11-06  7:01 ` [PATCH v5 02/48] Input: atmel_mxt_ts - rework sysfs init/remove Jiada Wang
2019-11-06  7:01 ` [PATCH v5 03/48] Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary Jiada Wang
2019-11-06  7:01 ` [PATCH v5 04/48] Input: atmel_mxt_ts - split large i2c transfers into blocks Jiada Wang
2019-11-06  7:01 ` [PATCH v5 05/48] Input: atmel_mxt_ts - output status from T48 Noise Supression Jiada Wang
2019-11-06  7:01 ` [PATCH v5 06/48] Input: atmel_mxt_ts - output status from T42 Touch Suppression Jiada Wang
2019-11-06  7:01 ` [PATCH v5 07/48] Input: atmel_mxt_ts - implement T9 vector/orientation support Jiada Wang
2019-11-06  7:01 ` [PATCH v5 08/48] Input: atmel_mxt_ts - implement T15 Key Array support Jiada Wang
2019-11-06  7:01 ` [PATCH v5 09/48] Input: atmel_mxt_ts - handle reports from T47 Stylus object Jiada Wang
2019-11-06  7:01 ` [PATCH v5 10/48] Input: atmel_mxt_ts - implement support for T107 active stylus Jiada Wang
2019-11-06  7:01 ` [PATCH v5 11/48] Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msgs Jiada Wang
2019-11-06  7:01 ` [PATCH v5 12/48] Input: atmel_mxt_ts - release touch state during suspend Jiada Wang
2019-11-06  7:01 ` [PATCH v5 13/48] Input: atmel_mxt_ts - add regulator control support Jiada Wang
2019-11-06  7:01 ` [PATCH v5 14/48] Input: atmel_mxt_ts - report failures in suspend/resume Jiada Wang
2019-11-06  7:01 ` [PATCH v5 15/48] Input: atmel_mxt_ts - allow specification of firmware file name Jiada Wang
2019-11-06  7:01 ` [PATCH v5 16/48] Input: atmel_mxt_ts - handle cfg filename via pdata/sysfs Jiada Wang
2019-11-06  7:01 ` [PATCH v5 17/48] Input: atmel_mxt_ts - allow input name to be specified in platform data Jiada Wang
2019-11-06  7:01 ` [PATCH v5 18/48] Input: atmel_mxt_ts - add config checksum attribute to sysfs Jiada Wang
2019-11-06  7:01 ` [PATCH v5 19/48] Input: atmel_mxt_ts - refactor firmware flash to extract context into struct Jiada Wang
2019-11-06  7:01 ` [PATCH v5 20/48] Input: atmel_mxt_ts - refactor code to enter bootloader into separate func Jiada Wang
2019-11-06  7:01 ` [PATCH v5 21/48] Input: atmel_mxt_ts - combine bootloader version query with probe Jiada Wang
2019-11-06  7:01 ` [PATCH v5 22/48] Input: atmel_mxt_ts - improve bootloader state machine handling Jiada Wang
2019-11-06  7:01 ` [PATCH v5 23/48] Input: atmel_mxt_ts - rename bl_completion to chg_completion Jiada Wang
2019-11-06  7:01 ` [PATCH v5 24/48] Input: atmel_mxt_ts - make bootloader interrupt driven Jiada Wang
2019-11-06  7:01 ` [PATCH v5 25/48] Input: atmel_mxt_ts - delay enabling IRQ when not using regulators Jiada Wang
2019-11-06  7:01 ` [PATCH v5 26/48] Input: atmel_mxt_ts - implement I2C retries Jiada Wang
2019-11-06  7:01 ` [PATCH v5 27/48] Input: atmel_mxt_ts - orientation is not present in hover Jiada Wang
2019-11-06  7:01 ` [PATCH v5 28/48] Input: atmel_mxt_ts - implement debug output for messages Jiada Wang
2019-11-06  7:01 ` [PATCH v5 29/48] Input: atmel_mxt_ts - implement improved debug message interface Jiada Wang
2019-11-06  7:01 ` [PATCH v5 30/48] Input: atmel_mxt_ts - eliminate data->raw_info_block Jiada Wang
2019-11-06  7:01 ` [PATCH v5 31/48] Input: atmel_mxt_ts - Change call-points of mxt_free_* functions Jiada Wang
2019-11-06  7:01 ` [PATCH v5 32/48] Input: atmel_mxt_ts - rely on calculated_crc rather than file config_crc Jiada Wang
2019-11-06  7:01 ` [PATCH v5 33/48] input: atmel_mxt_ts: export GPIO reset line via sysfs Jiada Wang
2019-11-06  7:01 ` [PATCH v5 34/48] input: atmel_mxt_ts: Add Missing Delay for reset handling of Atmel touch panel controller in detachable displays Jiada Wang
2019-11-06  7:01 ` [PATCH v5 35/48] Input: atmel_mxt_ts: Add support for run self-test routine Jiada Wang
2019-11-06  7:01 ` [PATCH v5 36/48] Input: atmel_mxt_ts: Limit the max bytes transferred in an i2c transaction Jiada Wang
2019-11-06  7:01 ` [PATCH v5 37/48] Input: atmel_mxt_ts: return error from mxt_process_messages_until_invalid() Jiada Wang
2019-11-06  7:01 ` [PATCH v5 38/48] Input: Atmel: improve error handling in mxt_start() Jiada Wang
2019-11-06  7:01 ` [PATCH v5 39/48] Input: Atmel: improve error handling in mxt_initialize() Jiada Wang
2019-11-06  7:01 ` [PATCH v5 40/48] Input: Atmel: improve error handling in mxt_update_cfg() Jiada Wang
2019-11-06  7:01 ` [PATCH v5 41/48] Input: Atmel: Improve error handling in mxt_initialize_input_device() Jiada Wang
2019-11-06  7:01 ` [PATCH v5 42/48] Input: Atmel: handle ReportID "0x00" while processing T5 messages Jiada Wang
2019-11-06  7:01 ` [PATCH v5 43/48] Input: Atmel: use T44 object to process " Jiada Wang
2019-11-06  7:01 ` [PATCH v5 44/48] Input: atmel_mxt_ts: use gpiod_set_value_cansleep for reset pin Jiada Wang
2019-11-06  7:01 ` [PATCH v5 45/48] input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen status Jiada Wang
2019-11-06  7:01 ` [PATCH v5 46/48] input: atmel_mxt_ts: added sysfs interface to update atmel T38 data Jiada Wang
2019-11-06  7:01 ` [PATCH v5 47/48] Input: atmel_mxt_ts: Implement synchronization during various operation Jiada Wang
2019-11-06  7:01 ` [PATCH v5 48/48] Input: atmel_mxt_ts - Fix compilation warning Jiada Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bb392c48-3d1e-cb79-046b-355b12331e8a@bitmath.org \
    --to=rydberg@bitmath.org \
    --cc=Andrew_Gabbasov@mentor.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=erosca@de.adit-jv.com \
    --cc=jiada_wang@mentor.com \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nick@shmanahar.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.