Re: [PATCH] iio: maxim_thermocouple: Use device-managed APIs

Jonathan Cameron
2019-07-27T13:51:33Z

On Fri, 26 Jul 2019 18:49:50 +0800
Chuhong Yuan <hslester96@gmail.com> wrote:

> Use device-managed APIs to simplify the code.
> The remove functions are redundant now and can
> be deleted.
>
> Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
+CC Matt as I think this is one of his.

I modified slightly and applied to the togreg branch of iio.git.

See inline for the change.

Thanks,

Jonathan

> ---
> drivers/iio/temperature/maxim_thermocouple.c | 23 ++++----------------
> 1 file changed, 4 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/iio/temperature/maxim_thermocouple.c b/drivers/iio/temperature/maxim_thermocouple.c
> index c613a64c017f..314b6e11e386 100644
> --- a/drivers/iio/temperature/maxim_thermocouple.c
> +++ b/drivers/iio/temperature/maxim_thermocouple.c
> @@ -230,29 +230,15 @@ static int maxim_thermocouple_probe(struct spi_device *spi)
> data->spi = spi;
> data->chip = chip;
>
> - ret = iio_triggered_buffer_setup(indio_dev, NULL,
> + ret = devm_iio_triggered_buffer_setup(&spi->dev,
> + indio_dev, NULL,
> maxim_thermocouple_trigger_handler, NULL);
> if (ret)
> return ret;
>
> - ret = iio_device_register(indio_dev);
> + ret = devm_iio_device_register(&spi->dev, indio_dev);
> if (ret)
> - goto error_unreg_buffer;
> -
> - return 0;
> -
> -error_unreg_buffer:
> - iio_triggered_buffer_cleanup(indio_dev);
> -
> - return ret;
> -}
> -
> -static int maxim_thermocouple_remove(struct spi_device *spi)
> -{
> - struct iio_dev *indio_dev = spi_get_drvdata(spi);
> -
> - iio_device_unregister(indio_dev);
> - iio_triggered_buffer_cleanup(indio_dev);
> + return ret;

Slight tweak. I'll do it whilst applying.
can just
return devm_iio_device_register(...) as same effect.

>
> return 0;
> }
> @@ -277,7 +263,6 @@ static struct spi_driver maxim_thermocouple_driver = {
> .of_match_table = maxim_thermocouple_of_match,
> },
> .probe = maxim_thermocouple_probe,
> - .remove = maxim_thermocouple_remove,
> .id_table = maxim_thermocouple_id,
> };
> module_spi_driver(maxim_thermocouple_driver);