diff mbox series

Input: ads7846 - Fix usage of match data

Message ID 20230606191304.3804174-1-linus.walleij@linaro.org (mailing list archive)
State Mainlined
Commit 8f7913c04f6a7b90bcf998ece17395d7090f6d44
Headers show
Series Input: ads7846 - Fix usage of match data | expand

Commit Message

Linus Walleij June 6, 2023, 7:13 p.m. UTC
device_get_match_data() returns the match data directly, fix
this up and fix the probe crash.

Fixes: 767d83361aaa ("Input: ads7846 - Convert to use software nodes")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
This patch needs to be applied to the SoC tree where the
offending patch is residing.
---
 drivers/input/touchscreen/ads7846.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

Comments

Dmitry Torokhov June 6, 2023, 7:15 p.m. UTC | #1
On Tue, Jun 06, 2023 at 09:13:04PM +0200, Linus Walleij wrote:
> device_get_match_data() returns the match data directly, fix
> this up and fix the probe crash.
> 
> Fixes: 767d83361aaa ("Input: ads7846 - Convert to use software nodes")
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

> ---
> This patch needs to be applied to the SoC tree where the
> offending patch is residing.
> ---
>  drivers/input/touchscreen/ads7846.c | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index 40eb27f1b23f..fe6fe8acd8a6 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1117,20 +1117,13 @@ MODULE_DEVICE_TABLE(of, ads7846_dt_ids);
>  static const struct ads7846_platform_data *ads7846_get_props(struct device *dev)
>  {
>  	struct ads7846_platform_data *pdata;
> -	const struct platform_device_id *pdev_id;
>  	u32 value;
>  
> -	pdev_id = device_get_match_data(dev);
> -	if (!pdev_id) {
> -		dev_err(dev, "Unknown device model\n");
> -		return ERR_PTR(-EINVAL);
> -	}
> -
>  	pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
>  	if (!pdata)
>  		return ERR_PTR(-ENOMEM);
>  
> -	pdata->model = (unsigned long)pdev_id->driver_data;
> +	pdata->model = (u32)device_get_match_data(dev);
>  
>  	device_property_read_u16(dev, "ti,vref-delay-usecs",
>  				 &pdata->vref_delay_usecs);
> -- 
> 2.34.1
>
diff mbox series

Patch

diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 40eb27f1b23f..fe6fe8acd8a6 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -1117,20 +1117,13 @@  MODULE_DEVICE_TABLE(of, ads7846_dt_ids);
 static const struct ads7846_platform_data *ads7846_get_props(struct device *dev)
 {
 	struct ads7846_platform_data *pdata;
-	const struct platform_device_id *pdev_id;
 	u32 value;
 
-	pdev_id = device_get_match_data(dev);
-	if (!pdev_id) {
-		dev_err(dev, "Unknown device model\n");
-		return ERR_PTR(-EINVAL);
-	}
-
 	pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
 	if (!pdata)
 		return ERR_PTR(-ENOMEM);
 
-	pdata->model = (unsigned long)pdev_id->driver_data;
+	pdata->model = (u32)device_get_match_data(dev);
 
 	device_property_read_u16(dev, "ti,vref-delay-usecs",
 				 &pdata->vref_delay_usecs);