All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiada Wang <jiada_wang@mentor.com>
To: <nick@shmanahar.org>, <dmitry.torokhov@gmail.com>,
	<jikos@kernel.org>, <benjamin.tissoires@redhat.com>,
	<bsz@semihalf.com>, <rydberg@bitmath.org>
Cc: <linux-input@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<erosca@de.adit-jv.com>, <Andrew_Gabbasov@mentor.com>,
	<jiada_wang@mentor.com>
Subject: [PATCH v9 01/55] Input: introduce input_mt_report_slot_inactive
Date: Wed, 25 Mar 2020 06:32:40 -0700	[thread overview]
Message-ID: <20200325133334.19346-2-jiada_wang@mentor.com> (raw)
In-Reply-To: <20200325133334.19346-1-jiada_wang@mentor.com>

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>
Reported-by: kernel test robot <rong.a.chen@intel.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
---
 drivers/hid/hid-alps.c                     | 3 +--
 drivers/hid/hid-multitouch.c               | 6 ++----
 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 +++++
 12 files changed, 21 insertions(+), 21 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 362805ddf377..e2ce790ff4a4 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/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 ae60442efda0..a2189739e30f 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 6bcffc930384..02a73d9a4def 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 69c6d559eeb0..776ed9e4629d 100644
--- a/drivers/input/touchscreen/mms114.c
+++ b/drivers/input/touchscreen/mms114.c
@@ -549,7 +549,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 0e2e08f3f433..ef6aaed217cf 100644
--- a/drivers/input/touchscreen/raspberrypi-ts.c
+++ b/drivers/input/touchscreen/raspberrypi-ts.c
@@ -100,7 +100,7 @@ static void rpi_ts_poll(struct input_dev *input)
 	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);
-- 
2.17.1


  reply	other threads:[~2020-03-25 13:33 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-25 13:32 [PATCH v9 00/55] atmel_mxt_ts misc Jiada Wang
2020-03-25 13:32 ` Jiada Wang [this message]
2020-03-25 13:32 ` [PATCH v9 02/55] Input: atmel_mxt_ts - rework sysfs init/remove Jiada Wang
2020-03-25 13:32 ` [PATCH v9 03/55] Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary Jiada Wang
2020-03-25 13:32 ` [PATCH v9 04/55] Input: atmel_mxt_ts - split large i2c transfers into blocks Jiada Wang
2020-03-25 13:32 ` [PATCH v9 05/55] Input: atmel_mxt_ts - output status from T48 Noise Supression Jiada Wang
2020-03-25 13:32 ` [PATCH v9 06/55] Input: atmel_mxt_ts - output status from T42 Touch Suppression Jiada Wang
2020-03-25 13:32 ` [PATCH v9 07/55] Input: atmel_mxt_ts - implement T9 vector/orientation support Jiada Wang
2020-03-25 13:32 ` [PATCH v9 08/55] Input: atmel_mxt_ts - implement T15 Key Array support Jiada Wang
2020-03-25 13:32 ` [PATCH v9 09/55] Input: atmel_mxt_ts - handle reports from T47 Stylus object Jiada Wang
2020-03-25 13:32 ` [PATCH v9 10/55] Input: atmel_mxt_ts - implement support for T107 active stylus Jiada Wang
2020-03-25 13:32 ` [PATCH v9 11/55] Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msgs Jiada Wang
2020-03-25 13:32 ` [PATCH v9 12/55] Input: atmel_mxt_ts - release touch state during suspend Jiada Wang
2020-03-25 13:32 ` [PATCH v9 13/55] Input: atmel_mxt_ts - add regulator control support Jiada Wang
2020-03-25 19:05   ` Dmitry Osipenko
2020-03-27 11:09     ` Wang, Jiada
2020-03-29 18:54       ` Dmitry Osipenko
2020-03-30  4:10         ` Wang, Jiada
2020-03-25 13:32 ` [PATCH v9 14/55] dt-bindings: input: atmel: add suspend mode support Jiada Wang
2020-03-25 13:32 ` [PATCH v9 15/55] Input: atmel_mxt_ts - report failures in suspend/resume Jiada Wang
2020-03-25 13:32 ` [PATCH v9 16/55] Input: atmel_mxt_ts - allow specification of firmware file name Jiada Wang
2020-03-25 13:32 ` [PATCH v9 17/55] Input: atmel_mxt_ts: Rename mxt_fw_version_show to fw_version_show Jiada Wang
2020-03-25 13:32 ` [PATCH v9 18/55] Input: atmel_mxt_ts: Rename mxt_hw_version_show to hw_version_show Jiada Wang
2020-03-25 13:32 ` [PATCH v9 19/55] Input: atmel_mxt_ts: rename mxt_update_fw_store to update_fw_store Jiada Wang
2020-03-25 13:32 ` [PATCH v9 20/55] Input: atmel_mxt_ts - handle cfg filename via pdata/sysfs Jiada Wang
2020-03-25 13:33 ` [PATCH v9 21/55] dt-bindings: input: atmel: provide name of configuration file Jiada Wang
2020-03-25 13:33 ` [PATCH v9 22/55] Input: atmel_mxt_ts - allow input name to be specified in platform data Jiada Wang
2020-03-25 13:33 ` [PATCH v9 23/55] dt-bindings: input: atmel: support to specify input name Jiada Wang
2020-03-25 13:33 ` [PATCH v9 24/55] Input: atmel_mxt_ts - add config checksum attribute to sysfs Jiada Wang
2020-03-25 13:33 ` [PATCH v9 25/55] Input: atmel_mxt_ts - refactor firmware flash to extract context into struct Jiada Wang
2020-03-25 13:33 ` [PATCH v9 26/55] Input: atmel_mxt_ts - refactor code to enter bootloader into separate func Jiada Wang
2020-03-25 13:33 ` [PATCH v9 27/55] Input: atmel_mxt_ts - combine bootloader version query with probe Jiada Wang
2020-03-25 13:33 ` [PATCH v9 28/55] Input: atmel_mxt_ts - improve bootloader state machine handling Jiada Wang
2020-03-25 13:33 ` [PATCH v9 29/55] Input: atmel_mxt_ts - rename bl_completion to chg_completion Jiada Wang
2020-03-25 13:33 ` [PATCH v9 30/55] Input: atmel_mxt_ts - make bootloader interrupt driven Jiada Wang
2020-03-25 13:33 ` [PATCH v9 31/55] Input: atmel_mxt_ts - delay enabling IRQ when not using regulators Jiada Wang
2020-03-25 13:33 ` [PATCH v9 32/55] Input: atmel_mxt_ts - implement I2C retries Jiada Wang
2020-03-25 13:33 ` [PATCH v9 33/55] Input: atmel_mxt_ts - orientation is not present in hover Jiada Wang
2020-03-25 13:33 ` [PATCH v9 34/55] Input: atmel_mxt_ts - implement debug output for messages Jiada Wang
2020-03-25 13:33 ` [PATCH v9 35/55] Input: atmel_mxt_ts - implement improved debug message interface Jiada Wang
2020-03-25 13:33 ` [PATCH v9 36/55] Input: atmel_mxt_ts - eliminate data->raw_info_block Jiada Wang
2020-03-25 13:33 ` [PATCH v9 37/55] Input: atmel_mxt_ts - Change call-points of mxt_free_* functions Jiada Wang
2020-03-25 13:33 ` [PATCH v9 38/55] Input: atmel_mxt_ts - rely on calculated_crc rather than file config_crc Jiada Wang
2020-03-25 13:33 ` [PATCH v9 39/55] input: atmel_mxt_ts: export GPIO reset line via sysfs Jiada Wang
2020-03-25 13:33 ` [PATCH v9 40/55] input: atmel_mxt_ts: Add Missing Delay for reset handling of Atmel touch panel controller in detachable displays Jiada Wang
2020-03-25 13:33 ` [PATCH v9 41/55] Input: atmel_mxt_ts: Add support for run self-test routine Jiada Wang
2020-03-25 13:33 ` [PATCH v9 42/55] Input: atmel_mxt_ts: Limit the max bytes transferred in an i2c transaction Jiada Wang
2020-03-25 13:33 ` [PATCH v9 43/55] dt-bindings: input: atmel: support to set max bytes transferred Jiada Wang
2020-03-25 13:33 ` [PATCH v9 44/55] Input: atmel_mxt_ts: return error from mxt_process_messages_until_invalid() Jiada Wang
2020-03-25 13:33 ` [PATCH v9 45/55] Input: Atmel: improve error handling in mxt_start() Jiada Wang
2020-03-25 13:33 ` [PATCH v9 46/55] Input: Atmel: improve error handling in mxt_initialize() Jiada Wang
2020-03-25 13:33 ` [PATCH v9 47/55] Input: Atmel: improve error handling in mxt_update_cfg() Jiada Wang
2020-03-25 13:33 ` [PATCH v9 48/55] Input: Atmel: Improve error handling in mxt_initialize_input_device() Jiada Wang
2020-03-25 13:33 ` [PATCH v9 49/55] Input: Atmel: handle ReportID "0x00" while processing T5 messages Jiada Wang
2020-03-25 13:33 ` [PATCH v9 50/55] Input: Atmel: use T44 object to process " Jiada Wang
2020-03-25 13:33 ` [PATCH v9 51/55] Input: atmel_mxt_ts: use gpiod_set_value_cansleep for reset pin Jiada Wang
2020-03-25 13:33 ` [PATCH v9 52/55] input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen status Jiada Wang
2020-03-25 19:35   ` Dmitry Osipenko
2020-03-25 19:41     ` Dmitry Osipenko
2020-03-27 12:49     ` Wang, Jiada
2020-03-27 13:37       ` Dmitry Osipenko
2020-03-27 13:43         ` Dmitry Osipenko
2020-03-25 13:33 ` [PATCH v9 53/55] input: atmel_mxt_ts: added sysfs interface to update atmel T38 data Jiada Wang
2020-03-25 13:33 ` [PATCH v9 54/55] Input: atmel_mxt_ts: Implement synchronization during various operation Jiada Wang
2020-03-25 13:33 ` [PATCH v9 55/55] 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=20200325133334.19346-2-jiada_wang@mentor.com \
    --to=jiada_wang@mentor.com \
    --cc=Andrew_Gabbasov@mentor.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=bsz@semihalf.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=erosca@de.adit-jv.com \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nick@shmanahar.org \
    --cc=rydberg@bitmath.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.