public inbox for linux-input@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] Input: novatek-nvt-ts - drop wake_type check
       [not found] <20260121-fervent-wren-1730d5@quoll>
@ 2026-01-22  0:10 ` Gianluca Boiano
  2026-01-22  0:14   ` Dmitry Torokhov
  0 siblings, 1 reply; 2+ messages in thread
From: Gianluca Boiano @ 2026-01-22  0:10 UTC (permalink / raw)
  To: linux-input; +Cc: hdegoede, dmitry.torokhov, Gianluca Boiano

The wake_type parameter from touchscreen registers is not used for
anything functional - the driver only validates that it matches a
hardcoded expected value per chip variant. This causes probe to fail
on touchscreens that report a different wake_type despite being
otherwise compatible.

Drop the wake_type check and the associated chip data member to allow
the existing compatibles to work with more touchscreen variants.

Signed-off-by: Gianluca Boiano <morf3089@gmail.com>
---
Changes in v3:
- Completely reworked per Hans de Goede's suggestion: instead of adding
  a new compatible for the e7t variant, simply drop the wake_type check
  entirely since it serves no functional purpose
- Dropped dt-bindings patch (no longer needed)

Changes in v2:
- Removed Closes: tag referencing downstream repository

 drivers/input/touchscreen/novatek-nvt-ts.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/input/touchscreen/novatek-nvt-ts.c b/drivers/input/touchscreen/novatek-nvt-ts.c
index 44b58e0dc1ad..3e6e2ee0ba8f 100644
--- a/drivers/input/touchscreen/novatek-nvt-ts.c
+++ b/drivers/input/touchscreen/novatek-nvt-ts.c
@@ -27,7 +27,6 @@
 #define NVT_TS_PARAMS_MAX_TOUCH		0x09
 #define NVT_TS_PARAMS_MAX_BUTTONS	0x0a
 #define NVT_TS_PARAMS_IRQ_TYPE		0x0b
-#define NVT_TS_PARAMS_WAKE_TYPE		0x0c
 #define NVT_TS_PARAMS_CHIP_ID		0x0e
 #define NVT_TS_PARAMS_SIZE		0x0f
 
@@ -49,7 +48,6 @@ static const int nvt_ts_irq_type[4] = {
 };
 
 struct nvt_ts_i2c_chip_data {
-	u8 wake_type;
 	u8 chip_id;
 };
 
@@ -261,7 +259,6 @@ static int nvt_ts_probe(struct i2c_client *client)
 	if (width > NVT_TS_MAX_SIZE || height >= NVT_TS_MAX_SIZE ||
 	    data->max_touches > NVT_TS_MAX_TOUCHES ||
 	    irq_type >= ARRAY_SIZE(nvt_ts_irq_type) ||
-	    data->buf[NVT_TS_PARAMS_WAKE_TYPE] != chip->wake_type ||
 	    data->buf[NVT_TS_PARAMS_CHIP_ID] != chip->chip_id) {
 		dev_err(dev, "Unsupported touchscreen parameters: %*ph\n",
 			NVT_TS_PARAMS_SIZE, data->buf);
@@ -314,12 +311,10 @@ static int nvt_ts_probe(struct i2c_client *client)
 }
 
 static const struct nvt_ts_i2c_chip_data nvt_nt11205_ts_data = {
-	.wake_type = 0x05,
 	.chip_id = 0x05,
 };
 
 static const struct nvt_ts_i2c_chip_data nvt_nt36672a_ts_data = {
-	.wake_type = 0x01,
 	.chip_id = 0x08,
 };
 
-- 
2.52.0


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

* Re: [PATCH v3] Input: novatek-nvt-ts - drop wake_type check
  2026-01-22  0:10 ` [PATCH v3] Input: novatek-nvt-ts - drop wake_type check Gianluca Boiano
@ 2026-01-22  0:14   ` Dmitry Torokhov
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Torokhov @ 2026-01-22  0:14 UTC (permalink / raw)
  To: Gianluca Boiano; +Cc: linux-input, hdegoede

On Thu, Jan 22, 2026 at 01:10:40AM +0100, Gianluca Boiano wrote:
> The wake_type parameter from touchscreen registers is not used for
> anything functional - the driver only validates that it matches a
> hardcoded expected value per chip variant. This causes probe to fail
> on touchscreens that report a different wake_type despite being
> otherwise compatible.
> 
> Drop the wake_type check and the associated chip data member to allow
> the existing compatibles to work with more touchscreen variants.
> 
> Signed-off-by: Gianluca Boiano <morf3089@gmail.com>

I think this deserves "Suggested-by:" tag. I'll add it unless there are
objections...

> ---
> Changes in v3:
> - Completely reworked per Hans de Goede's suggestion: instead of adding
>   a new compatible for the e7t variant, simply drop the wake_type check
>   entirely since it serves no functional purpose
> - Dropped dt-bindings patch (no longer needed)
> 
> Changes in v2:
> - Removed Closes: tag referencing downstream repository
> 
>  drivers/input/touchscreen/novatek-nvt-ts.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/novatek-nvt-ts.c b/drivers/input/touchscreen/novatek-nvt-ts.c
> index 44b58e0dc1ad..3e6e2ee0ba8f 100644
> --- a/drivers/input/touchscreen/novatek-nvt-ts.c
> +++ b/drivers/input/touchscreen/novatek-nvt-ts.c
> @@ -27,7 +27,6 @@
>  #define NVT_TS_PARAMS_MAX_TOUCH		0x09
>  #define NVT_TS_PARAMS_MAX_BUTTONS	0x0a
>  #define NVT_TS_PARAMS_IRQ_TYPE		0x0b
> -#define NVT_TS_PARAMS_WAKE_TYPE		0x0c
>  #define NVT_TS_PARAMS_CHIP_ID		0x0e
>  #define NVT_TS_PARAMS_SIZE		0x0f
>  
> @@ -49,7 +48,6 @@ static const int nvt_ts_irq_type[4] = {
>  };
>  
>  struct nvt_ts_i2c_chip_data {
> -	u8 wake_type;
>  	u8 chip_id;
>  };
>  
> @@ -261,7 +259,6 @@ static int nvt_ts_probe(struct i2c_client *client)
>  	if (width > NVT_TS_MAX_SIZE || height >= NVT_TS_MAX_SIZE ||
>  	    data->max_touches > NVT_TS_MAX_TOUCHES ||
>  	    irq_type >= ARRAY_SIZE(nvt_ts_irq_type) ||
> -	    data->buf[NVT_TS_PARAMS_WAKE_TYPE] != chip->wake_type ||
>  	    data->buf[NVT_TS_PARAMS_CHIP_ID] != chip->chip_id) {
>  		dev_err(dev, "Unsupported touchscreen parameters: %*ph\n",
>  			NVT_TS_PARAMS_SIZE, data->buf);
> @@ -314,12 +311,10 @@ static int nvt_ts_probe(struct i2c_client *client)
>  }
>  
>  static const struct nvt_ts_i2c_chip_data nvt_nt11205_ts_data = {
> -	.wake_type = 0x05,
>  	.chip_id = 0x05,
>  };
>  
>  static const struct nvt_ts_i2c_chip_data nvt_nt36672a_ts_data = {
> -	.wake_type = 0x01,
>  	.chip_id = 0x08,
>  };
>  

Thanks.

-- 
Dmitry

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

end of thread, other threads:[~2026-01-22  0:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260121-fervent-wren-1730d5@quoll>
2026-01-22  0:10 ` [PATCH v3] Input: novatek-nvt-ts - drop wake_type check Gianluca Boiano
2026-01-22  0:14   ` Dmitry Torokhov

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