mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events
@ 2023-09-20  7:46 Emanuele Ghidoli
  2023-09-20  7:46 ` [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync Emanuele Ghidoli
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Emanuele Ghidoli @ 2023-09-20  7:46 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>

A couple of fixes to prevent spurious events when the data buffer is not the expected one.

Emanuele Ghidoli (2):
  Input: ilitek_ts_i2c - avoid wrong input subsystem sync
  Input: ilitek_ts_i2c - add report id message validation

 drivers/input/touchscreen/ilitek_ts_i2c.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync
  2023-09-20  7:46 [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
@ 2023-09-20  7:46 ` Emanuele Ghidoli
  2023-09-26  8:15   ` Francesco Dolcini
  2023-09-20  7:46 ` [PATCH v2 2/2] Input: ilitek_ts_i2c - add report id message validation Emanuele Ghidoli
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Emanuele Ghidoli @ 2023-09-20  7:46 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>

For different reasons i2c transaction may fail or
report id message content may be wrong.
Avoid sync the input subsystem if message cannot be parsed.
An input subsystem sync without points is interpreted as
"nothing is touching the screen" while normally this is not the case.

Fixes: 42370681bd46 ("Input: Add support for ILITEK Lego Series")
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
---
 drivers/input/touchscreen/ilitek_ts_i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/touchscreen/ilitek_ts_i2c.c b/drivers/input/touchscreen/ilitek_ts_i2c.c
index 90c4934e750a..0c3491e346f4 100644
--- a/drivers/input/touchscreen/ilitek_ts_i2c.c
+++ b/drivers/input/touchscreen/ilitek_ts_i2c.c
@@ -203,9 +203,9 @@ static int ilitek_process_and_report_v6(struct ilitek_ts_data *ts)
 		ilitek_touch_down(ts, id, x, y);
 	}
 
-err_sync_frame:
 	input_mt_sync_frame(input);
 	input_sync(input);
+err_sync_frame:
 	return error;
 }
 
-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 2/2] Input: ilitek_ts_i2c - add report id message validation
  2023-09-20  7:46 [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
  2023-09-20  7:46 ` [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync Emanuele Ghidoli
@ 2023-09-20  7:46 ` Emanuele Ghidoli
  2023-09-26  8:14   ` Francesco Dolcini
  2023-09-20  7:54 ` [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
  2023-10-22 15:13 ` Francesco Dolcini
  3 siblings, 1 reply; 8+ messages in thread
From: Emanuele Ghidoli @ 2023-09-20  7:46 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>

Ilitek touch IC driver answer to plain i2c read request, after it has
generated an interrupt request, with a report id message starting
with an identifier and a series of points.
If a request is sent unsolicited by an interrupt request the answer
do not contain this identifier.
Add a test to discard these messages, making the driver robust to
spurious interrupt requests.

Fixes: 42370681bd46 ("Input: Add support for ILITEK Lego Series")
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
---
 drivers/input/touchscreen/ilitek_ts_i2c.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/input/touchscreen/ilitek_ts_i2c.c b/drivers/input/touchscreen/ilitek_ts_i2c.c
index 0c3491e346f4..efce545236cd 100644
--- a/drivers/input/touchscreen/ilitek_ts_i2c.c
+++ b/drivers/input/touchscreen/ilitek_ts_i2c.c
@@ -37,6 +37,8 @@
 #define ILITEK_TP_CMD_GET_MCU_VER			0x61
 #define ILITEK_TP_CMD_GET_IC_MODE			0xC0
 
+#define ILITEK_TP_I2C_REPORT_ID				0x48
+
 #define REPORT_COUNT_ADDRESS				61
 #define ILITEK_SUPPORT_MAX_POINT			40
 
@@ -163,6 +165,11 @@ static int ilitek_process_and_report_v6(struct ilitek_ts_data *ts)
 		goto err_sync_frame;
 	}
 
+	if (buf[0] != ILITEK_TP_I2C_REPORT_ID) {
+		dev_err(dev, "get touch info failed. Wrong id: 0x%02X\n", buf[0]);
+		goto err_sync_frame;
+	}
+
 	report_max_point = buf[REPORT_COUNT_ADDRESS];
 	if (report_max_point > ts->max_tp) {
 		dev_err(dev, "FW report max point:%d > panel info. max:%d\n",
-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events
  2023-09-20  7:46 [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
  2023-09-20  7:46 ` [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync Emanuele Ghidoli
  2023-09-20  7:46 ` [PATCH v2 2/2] Input: ilitek_ts_i2c - add report id message validation Emanuele Ghidoli
@ 2023-09-20  7:54 ` Emanuele Ghidoli
  2023-10-22 15:13 ` Francesco Dolcini
  3 siblings, 0 replies; 8+ messages in thread
From: Emanuele Ghidoli @ 2023-09-20  7:54 UTC (permalink / raw)
  To: Emanuele Ghidoli, Dmitry Torokhov; +Cc: linux-kernel, linux-input, Joe Hung

On 20/09/2023 09:46, Emanuele Ghidoli wrote:
> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
> 
> A couple of fixes to prevent spurious events when the data buffer is not the expected one.
> 
> Emanuele Ghidoli (2):
>   Input: ilitek_ts_i2c - avoid wrong input subsystem sync
>   Input: ilitek_ts_i2c - add report id message validation

I did a small mistake, V1 never existed, this series will start from V2, apologize about that ...

Emanuele

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] Input: ilitek_ts_i2c - add report id message validation
  2023-09-20  7:46 ` [PATCH v2 2/2] Input: ilitek_ts_i2c - add report id message validation Emanuele Ghidoli
@ 2023-09-26  8:14   ` Francesco Dolcini
  0 siblings, 0 replies; 8+ messages in thread
From: Francesco Dolcini @ 2023-09-26  8:14 UTC (permalink / raw)
  To: Emanuele Ghidoli
  Cc: Dmitry Torokhov, Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

On Wed, Sep 20, 2023 at 09:46:50AM +0200, Emanuele Ghidoli wrote:
> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
> 
> Ilitek touch IC driver answer to plain i2c read request, after it has
> generated an interrupt request, with a report id message starting
> with an identifier and a series of points.
> If a request is sent unsolicited by an interrupt request the answer
> do not contain this identifier.
> Add a test to discard these messages, making the driver robust to
> spurious interrupt requests.
> 
> Fixes: 42370681bd46 ("Input: Add support for ILITEK Lego Series")
> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>

Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>

Francesco


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync
  2023-09-20  7:46 ` [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync Emanuele Ghidoli
@ 2023-09-26  8:15   ` Francesco Dolcini
  0 siblings, 0 replies; 8+ messages in thread
From: Francesco Dolcini @ 2023-09-26  8:15 UTC (permalink / raw)
  To: Emanuele Ghidoli
  Cc: Dmitry Torokhov, Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

On Wed, Sep 20, 2023 at 09:46:49AM +0200, Emanuele Ghidoli wrote:
> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
> 
> For different reasons i2c transaction may fail or
> report id message content may be wrong.
> Avoid sync the input subsystem if message cannot be parsed.
> An input subsystem sync without points is interpreted as
> "nothing is touching the screen" while normally this is not the case.
> 
> Fixes: 42370681bd46 ("Input: Add support for ILITEK Lego Series")
> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>

Francesco


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events
  2023-09-20  7:46 [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
                   ` (2 preceding siblings ...)
  2023-09-20  7:54 ` [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
@ 2023-10-22 15:13 ` Francesco Dolcini
  2023-11-21 14:00   ` Francesco Dolcini
  3 siblings, 1 reply; 8+ messages in thread
From: Francesco Dolcini @ 2023-10-22 15:13 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Emanuele Ghidoli, Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

Hello Dmitry,

On Wed, Sep 20, 2023 at 09:46:48AM +0200, Emanuele Ghidoli wrote:
> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
> 
> A couple of fixes to prevent spurious events when the data buffer is not the expected one.
> 
> Emanuele Ghidoli (2):
>   Input: ilitek_ts_i2c - avoid wrong input subsystem sync
>   Input: ilitek_ts_i2c - add report id message validation
> 
>  drivers/input/touchscreen/ilitek_ts_i2c.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)

Just a gently ping on this series.

Thanks,
Francesco


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events
  2023-10-22 15:13 ` Francesco Dolcini
@ 2023-11-21 14:00   ` Francesco Dolcini
  0 siblings, 0 replies; 8+ messages in thread
From: Francesco Dolcini @ 2023-11-21 14:00 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Emanuele Ghidoli, Emanuele Ghidoli, linux-kernel, linux-input, Joe Hung

Hello Dmitry,

On Sun, Oct 22, 2023 at 05:13:00PM +0200, Francesco Dolcini wrote:
> On Wed, Sep 20, 2023 at 09:46:48AM +0200, Emanuele Ghidoli wrote:
> > From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
> > 
> > A couple of fixes to prevent spurious events when the data buffer is not the expected one.
> > 
> > Emanuele Ghidoli (2):
> >   Input: ilitek_ts_i2c - avoid wrong input subsystem sync
> >   Input: ilitek_ts_i2c - add report id message validation
> > 
> >  drivers/input/touchscreen/ilitek_ts_i2c.c | 9 ++++++++-
> >  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> Just a gently ping on this series.

Apologize for nagging you again on this small series, I assume it just
got lost through the cracks, but if this is not the case and you need
anything just let me know.

Thanks,
Francesco


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-11-21 14:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-20  7:46 [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
2023-09-20  7:46 ` [PATCH v2 1/2] Input: ilitek_ts_i2c - avoid wrong input subsystem sync Emanuele Ghidoli
2023-09-26  8:15   ` Francesco Dolcini
2023-09-20  7:46 ` [PATCH v2 2/2] Input: ilitek_ts_i2c - add report id message validation Emanuele Ghidoli
2023-09-26  8:14   ` Francesco Dolcini
2023-09-20  7:54 ` [PATCH v2 0/2] Input: ilitek_ts_i2c - Fix spurious input events Emanuele Ghidoli
2023-10-22 15:13 ` Francesco Dolcini
2023-11-21 14:00   ` Francesco Dolcini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®