Re: [PATCH v2] iio: proximity: ping: pass reference to IIO device as param to ping_read()

Jonathan Cameron
2020-05-21T18:40:25Z

On Mon, 18 May 2020 16:38:13 +0300
Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:

> Since there will be some changes to how iio_priv_to_dev() is implemented,
> it could be that the helper becomes a bit slower, as it will be hidden away
> in the IIO core.
>
> But even without that rework, this looks like it can pass the 'indio_dev'
> object to ping_read() and obtain the state struct via iio_priv() which is a
> preferred practice than going back-n-forth (getting the state-struct, then
> using iio_priv_to_dev() to get the indio_dev object back).
>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Seems trivial and unlikely to have any issues so I'll take this one
without waiting any longer.

Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.

Thanks,

Jonathan

> ---
>
> Changelog v1 -> v2:
> * split away from series
> * pass 'indio_dev' to ping_read() and get the info via iio_priv()
>
> drivers/iio/proximity/ping.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iio/proximity/ping.c b/drivers/iio/proximity/ping.c
> index 12b893c5b0ee..2e99eeb27f2e 100644
> --- a/drivers/iio/proximity/ping.c
> +++ b/drivers/iio/proximity/ping.c
> @@ -89,14 +89,14 @@ static irqreturn_t ping_handle_irq(int irq, void *dev_id)
> return IRQ_HANDLED;
> }
>
> -static int ping_read(struct ping_data *data)
> +static int ping_read(struct iio_dev *indio_dev)
> {
> + struct ping_data *data = iio_priv(indio_dev);
> int ret;
> ktime_t ktime_dt;
> s64 dt_ns;
> u32 time_ns, distance_mm;
> struct platform_device *pdev = to_platform_device(data->dev);
> - struct iio_dev *indio_dev = iio_priv_to_dev(data);
>
> /*
> * just one read-echo-cycle can take place at a time
> @@ -228,7 +228,6 @@ static int ping_read_raw(struct iio_dev *indio_dev,
> struct iio_chan_spec const *channel, int *val,
> int *val2, long info)
> {
> - struct ping_data *data = iio_priv(indio_dev);
> int ret;
>
> if (channel->type != IIO_DISTANCE)
> @@ -236,7 +235,7 @@ static int ping_read_raw(struct iio_dev *indio_dev,
>
> switch (info) {
> case IIO_CHAN_INFO_RAW:
> - ret = ping_read(data);
> + ret = ping_read(indio_dev);
> if (ret < 0)
> return ret;
> *val = ret;