Input: ads7846 - Fix usage of match data
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 6 Jun 2023 19:13:04 +0000 (21:13 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 7 Jun 2023 10:56:01 +0000 (12:56 +0200)
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>
Link: https://lore.kernel.org/r/20230606191304.3804174-1-linus.walleij@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/input/touchscreen/ads7846.c

index 40eb27f1b23f3b34456c1aed1f69270f92b63213..fe6fe8acd8a66acb2d588502a902a779cface6fe 100644 (file)
@@ -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);