iio: imx7d_adc: Don't pass IIO device to imx7d_adc_{enable,disable}()
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 20 Oct 2021 08:57:54 +0000 (10:57 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 17 Nov 2021 17:51:33 +0000 (17:51 +0000)
The `imx7d_adc_enable()` and `imx7d_adc_disable()` functions are used as
the suspend and resume callbacks for the device. When called as
suspend/resume functions they are called with the platform_device's device
as their parameter.

In addition the functions are called on device probe and remove. In this
case they are passed the struct device of the IIO device that the driver
registers.

This works because in the `imx7d_adc_{enable,disable}()` functions the
passed struct device is only ever used as a parameter to `dev_get_drvdata()`
and `dev_get_drvdata()` returns the same value for the platform device and
the IIO device.

But for consistency we should pass the same struct device to the
`imx7d_adc_{enable,disable}()` in all cases. This will avoid accidental
breakage if the device is ever used for something more than
`dev_get_drvdata()`.

Another motivation is that `dev_get_drvdata()` on the IIO device relies on
the IIO core calling `dev_set_drvdata()`. Something we want to remove.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Link: https://lore.kernel.org/r/20211020085754.16654-1-lars@metafoo.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/imx7d_adc.c

index 092f8d29652733b872cb10b119252f1246b0cba7..12f5b8e34c84cfddc6d6facd503fe88c19ad08b0 100644 (file)
@@ -522,12 +522,11 @@ static int imx7d_adc_probe(struct platform_device *pdev)
 
        imx7d_adc_feature_config(info);
 
-       ret = imx7d_adc_enable(&indio_dev->dev);
+       ret = imx7d_adc_enable(dev);
        if (ret)
                return ret;
 
-       ret = devm_add_action_or_reset(dev, __imx7d_adc_disable,
-                                      &indio_dev->dev);
+       ret = devm_add_action_or_reset(dev, __imx7d_adc_disable, dev);
        if (ret)
                return ret;