public inbox for linux-input@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Input: wdt87xx_i2c - a couple of cleanups
@ 2026-01-13  8:22 Andy Shevchenko
  2026-01-13  8:22 ` [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table Andy Shevchenko
  2026-01-13  8:22 ` [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe() Andy Shevchenko
  0 siblings, 2 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-01-13  8:22 UTC (permalink / raw)
  To: Andy Shevchenko, linux-input, linux-kernel; +Cc: Dmitry Torokhov

A couple of cleanups related to ACPI ID table and probe function.

Changelog v2:
- dropped no-op message for ENOMEM, dropped dup message for request IRQ failure

v1: 20260113073556.7380-1-andriy.shevchenko@linux.intel.com`

Andy Shevchenko (2):
  Input: wdt87xx_i2c - tidy up ACPI ID table
  Input: wdt87xx_i2c - switch to use dev_err_probe()

 drivers/input/touchscreen/wdt87xx_i2c.c | 45 +++++++++++--------------
 1 file changed, 20 insertions(+), 25 deletions(-)

-- 
2.50.1


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

* [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table
  2026-01-13  8:22 [PATCH v2 0/2] Input: wdt87xx_i2c - a couple of cleanups Andy Shevchenko
@ 2026-01-13  8:22 ` Andy Shevchenko
  2026-01-20 20:42   ` Dmitry Torokhov
  2026-01-13  8:22 ` [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe() Andy Shevchenko
  1 sibling, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2026-01-13  8:22 UTC (permalink / raw)
  To: Andy Shevchenko, linux-input, linux-kernel; +Cc: Dmitry Torokhov

Tidy up ACPI ID table:
- drop ACPI_PTR() and hence replace acpi.h with mod_devicetable.h et al.
- remove explicit driver_data initializer

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/input/touchscreen/wdt87xx_i2c.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/input/touchscreen/wdt87xx_i2c.c b/drivers/input/touchscreen/wdt87xx_i2c.c
index 88d376090e6e..99636d6eb0f3 100644
--- a/drivers/input/touchscreen/wdt87xx_i2c.c
+++ b/drivers/input/touchscreen/wdt87xx_i2c.c
@@ -9,17 +9,24 @@
  * may be copied, distributed, and modified under those terms.
  */
 
+#include <linux/array_size.h>
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/firmware.h>
 #include <linux/i2c.h>
 #include <linux/input.h>
+#include <linux/input/mt.h>
 #include <linux/interrupt.h>
-#include <linux/delay.h>
 #include <linux/irq.h>
 #include <linux/io.h>
+#include <linux/math.h>
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/pm.h>
 #include <linux/slab.h>
-#include <linux/firmware.h>
-#include <linux/input/mt.h>
-#include <linux/acpi.h>
+#include <linux/sysfs.h>
+#include <linux/types.h>
 #include <linux/unaligned.h>
 
 #define WDT87XX_NAME		"wdt87xx_i2c"
@@ -1153,13 +1160,11 @@ static const struct i2c_device_id wdt87xx_dev_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, wdt87xx_dev_id);
 
-#ifdef CONFIG_ACPI
 static const struct acpi_device_id wdt87xx_acpi_id[] = {
-	{ "WDHT0001", 0 },
+	{ "WDHT0001" },
 	{ }
 };
 MODULE_DEVICE_TABLE(acpi, wdt87xx_acpi_id);
-#endif
 
 static struct i2c_driver wdt87xx_driver = {
 	.probe		= wdt87xx_ts_probe,
@@ -1168,7 +1173,7 @@ static struct i2c_driver wdt87xx_driver = {
 		.name = WDT87XX_NAME,
 		.dev_groups = wdt87xx_groups,
 		.pm = pm_sleep_ptr(&wdt87xx_pm_ops),
-		.acpi_match_table = ACPI_PTR(wdt87xx_acpi_id),
+		.acpi_match_table = wdt87xx_acpi_id,
 	},
 };
 module_i2c_driver(wdt87xx_driver);
-- 
2.50.1


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

* [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe()
  2026-01-13  8:22 [PATCH v2 0/2] Input: wdt87xx_i2c - a couple of cleanups Andy Shevchenko
  2026-01-13  8:22 ` [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table Andy Shevchenko
@ 2026-01-13  8:22 ` Andy Shevchenko
  2026-01-20 20:40   ` Dmitry Torokhov
  1 sibling, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2026-01-13  8:22 UTC (permalink / raw)
  To: Andy Shevchenko, linux-input, linux-kernel; +Cc: Dmitry Torokhov

Switch to use dev_err_probe() to simplify the error path and
unify a message template. With that being done, drop the now no-op
message for -ENOMEM as allocator will print a big warning anyway
and remove duplicate message for devm_request_threaded_irq().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/input/touchscreen/wdt87xx_i2c.c | 24 +++++++-----------------
 1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/drivers/input/touchscreen/wdt87xx_i2c.c b/drivers/input/touchscreen/wdt87xx_i2c.c
index 99636d6eb0f3..3bf899fe615c 100644
--- a/drivers/input/touchscreen/wdt87xx_i2c.c
+++ b/drivers/input/touchscreen/wdt87xx_i2c.c
@@ -1033,10 +1033,8 @@ static int wdt87xx_ts_create_input_device(struct wdt87xx_data *wdt)
 	int error;
 
 	input = devm_input_allocate_device(dev);
-	if (!input) {
-		dev_err(dev, "failed to allocate input device\n");
+	if (!input)
 		return -ENOMEM;
-	}
 	wdt->input = input;
 
 	input->name = "WDT87xx Touchscreen";
@@ -1060,16 +1058,15 @@ static int wdt87xx_ts_create_input_device(struct wdt87xx_data *wdt)
 			    INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED);
 
 	error = input_register_device(input);
-	if (error) {
-		dev_err(dev, "failed to register input device: %d\n", error);
-		return error;
-	}
+	if (error)
+		return dev_err_probe(dev, error, "failed to register input device\n");
 
 	return 0;
 }
 
 static int wdt87xx_ts_probe(struct i2c_client *client)
 {
+	struct device *dev = &client->dev;
 	struct wdt87xx_data *wdt;
 	int error;
 
@@ -1099,16 +1096,9 @@ static int wdt87xx_ts_probe(struct i2c_client *client)
 	if (error)
 		return error;
 
-	error = devm_request_threaded_irq(&client->dev, client->irq,
-					  NULL, wdt87xx_ts_interrupt,
-					  IRQF_ONESHOT,
-					  client->name, wdt);
-	if (error) {
-		dev_err(&client->dev, "request irq failed: %d\n", error);
-		return error;
-	}
-
-	return 0;
+	return devm_request_threaded_irq(dev, client->irq,
+					 NULL, wdt87xx_ts_interrupt,
+					 IRQF_ONESHOT, client->name, wdt);
 }
 
 static int wdt87xx_suspend(struct device *dev)
-- 
2.50.1


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

* Re: [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe()
  2026-01-13  8:22 ` [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe() Andy Shevchenko
@ 2026-01-20 20:40   ` Dmitry Torokhov
  2026-01-20 21:09     ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Torokhov @ 2026-01-20 20:40 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: linux-input, linux-kernel

Hi Andy,

On Tue, Jan 13, 2026 at 09:22:58AM +0100, Andy Shevchenko wrote:
> Switch to use dev_err_probe() to simplify the error path and
> unify a message template. With that being done, drop the now no-op
> message for -ENOMEM as allocator will print a big warning anyway
> and remove duplicate message for devm_request_threaded_irq().
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/input/touchscreen/wdt87xx_i2c.c | 24 +++++++-----------------
>  1 file changed, 7 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/wdt87xx_i2c.c b/drivers/input/touchscreen/wdt87xx_i2c.c
> index 99636d6eb0f3..3bf899fe615c 100644
> --- a/drivers/input/touchscreen/wdt87xx_i2c.c
> +++ b/drivers/input/touchscreen/wdt87xx_i2c.c
> @@ -1033,10 +1033,8 @@ static int wdt87xx_ts_create_input_device(struct wdt87xx_data *wdt)
>  	int error;
>  
>  	input = devm_input_allocate_device(dev);
> -	if (!input) {
> -		dev_err(dev, "failed to allocate input device\n");
> +	if (!input)
>  		return -ENOMEM;
> -	}
>  	wdt->input = input;
>  
>  	input->name = "WDT87xx Touchscreen";
> @@ -1060,16 +1058,15 @@ static int wdt87xx_ts_create_input_device(struct wdt87xx_data *wdt)
>  			    INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED);
>  
>  	error = input_register_device(input);
> -	if (error) {
> -		dev_err(dev, "failed to register input device: %d\n", error);
> -		return error;
> -	}
> +	if (error)
> +		return dev_err_probe(dev, error, "failed to register input device\n");
>  
>  	return 0;
>  }
>  
>  static int wdt87xx_ts_probe(struct i2c_client *client)
>  {
> +	struct device *dev = &client->dev;

You introduced a tempo but used it in only one place. I dropped it.

>  	struct wdt87xx_data *wdt;
>  	int error;
>  
> @@ -1099,16 +1096,9 @@ static int wdt87xx_ts_probe(struct i2c_client *client)
>  	if (error)
>  		return error;
>  
> -	error = devm_request_threaded_irq(&client->dev, client->irq,
> -					  NULL, wdt87xx_ts_interrupt,
> -					  IRQF_ONESHOT,
> -					  client->name, wdt);
> -	if (error) {
> -		dev_err(&client->dev, "request irq failed: %d\n", error);
> -		return error;
> -	}
> -
> -	return 0;
> +	return devm_request_threaded_irq(dev, client->irq,
> +					 NULL, wdt87xx_ts_interrupt,
> +					 IRQF_ONESHOT, client->name, wdt);

My preference is to keep "if (error) return error;" even for the last
call when there are multiple potential points of failure in the
function, adjusted.

Applied the updated patch.

Thanks.

-- 
Dmitry

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

* Re: [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table
  2026-01-13  8:22 ` [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table Andy Shevchenko
@ 2026-01-20 20:42   ` Dmitry Torokhov
  2026-01-20 21:07     ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Torokhov @ 2026-01-20 20:42 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: linux-input, linux-kernel

Hi Andy,

On Tue, Jan 13, 2026 at 09:22:57AM +0100, Andy Shevchenko wrote:
> Tidy up ACPI ID table:
> - drop ACPI_PTR() and hence replace acpi.h with mod_devicetable.h et al.
> - remove explicit driver_data initializer

With the exception of cleaning the driver_data is it unclear to me what
the benefit is. The driver is potentially useful on non-ACPI systems (or
may be easily adopted) so making ACPI not optional does not sound like
improvement...

Thanks.

-- 
Dmitry

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

* Re: [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table
  2026-01-20 20:42   ` Dmitry Torokhov
@ 2026-01-20 21:07     ` Andy Shevchenko
  0 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-01-20 21:07 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Tue, Jan 20, 2026 at 12:42:16PM -0800, Dmitry Torokhov wrote:
> On Tue, Jan 13, 2026 at 09:22:57AM +0100, Andy Shevchenko wrote:

> > Tidy up ACPI ID table:
> > - drop ACPI_PTR() and hence replace acpi.h with mod_devicetable.h et al.
> > - remove explicit driver_data initializer
> 
> With the exception of cleaning the driver_data is it unclear to me what
> the benefit is. The driver is potentially useful on non-ACPI systems (or
> may be easily adopted) so making ACPI not optional does not sound like
> improvement...

I'm not sure how you came to the conclusion "making ACPI not optional".
This is just matter of dozens of bytes in the binary, it doesn't affect
functionality neither on ACPI-based, nor on non-ACPI platforms.

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe()
  2026-01-20 20:40   ` Dmitry Torokhov
@ 2026-01-20 21:09     ` Andy Shevchenko
  0 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-01-20 21:09 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Tue, Jan 20, 2026 at 12:40:25PM -0800, Dmitry Torokhov wrote:
> On Tue, Jan 13, 2026 at 09:22:58AM +0100, Andy Shevchenko wrote:

...

> > +	struct device *dev = &client->dev;
> 
> You introduced a tempo but used it in only one place. I dropped it.

Yes, to avoid churn on converting unrelated places right now. But it may help
in the future.

...

> > -	error = devm_request_threaded_irq(&client->dev, client->irq,
> > -					  NULL, wdt87xx_ts_interrupt,
> > -					  IRQF_ONESHOT,
> > -					  client->name, wdt);
> > -	if (error) {
> > -		dev_err(&client->dev, "request irq failed: %d\n", error);
> > -		return error;
> > -	}
> > -
> > -	return 0;
> > +	return devm_request_threaded_irq(dev, client->irq,
> > +					 NULL, wdt87xx_ts_interrupt,
> > +					 IRQF_ONESHOT, client->name, wdt);
> 
> My preference is to keep "if (error) return error;" even for the last
> call when there are multiple potential points of failure in the
> function, adjusted.

Okay, no problem.

> Applied the updated patch.

Thanks!

-- 
With Best Regards,
Andy Shevchenko



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

end of thread, other threads:[~2026-01-20 21:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-13  8:22 [PATCH v2 0/2] Input: wdt87xx_i2c - a couple of cleanups Andy Shevchenko
2026-01-13  8:22 ` [PATCH v2 1/2] Input: wdt87xx_i2c - tidy up ACPI ID table Andy Shevchenko
2026-01-20 20:42   ` Dmitry Torokhov
2026-01-20 21:07     ` Andy Shevchenko
2026-01-13  8:22 ` [PATCH v2 2/2] Input: wdt87xx_i2c - switch to use dev_err_probe() Andy Shevchenko
2026-01-20 20:40   ` Dmitry Torokhov
2026-01-20 21:09     ` Andy Shevchenko

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