Re: [PATCH 9/9] iio: core: move @clock_id from struct iio_dev to struct iio_dev_opaque

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 26, 2021 at 8:50 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
>
> From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
>
> There is already an acessor function used to access it, making this
> move straight forward.

Right now the iio_device_get_clock() helper is only being used in the
Chrome EC core sensor driver.
Maybe later if that can be reworked without this helper, then it could
be made private to IIO core.
Though, chances are some other driver may come along later and ask for
it to be public again.

Anyway.

Reviewed-by: Alexandru Ardelean <ardeleanalex@xxxxxxxxx>

>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> ---
>  drivers/iio/industrialio-core.c | 14 +++++++++++++-
>  include/linux/iio/iio-opaque.h  |  2 ++
>  include/linux/iio/iio.h         | 12 +-----------
>  3 files changed, 16 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 4a4c02fea152..efb4cf91c9e4 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -271,13 +271,25 @@ int iio_device_set_clock(struct iio_dev *indio_dev, clockid_t clock_id)
>                 mutex_unlock(&indio_dev->mlock);
>                 return -EBUSY;
>         }
> -       indio_dev->clock_id = clock_id;
> +       iio_dev_opaque->clock_id = clock_id;
>         mutex_unlock(&indio_dev->mlock);
>
>         return 0;
>  }
>  EXPORT_SYMBOL(iio_device_set_clock);
>
> +/**
> + * iio_device_get_clock() - Retrieve current timestamping clock for the device
> + * @indio_dev: IIO device structure containing the device
> + */
> +clockid_t iio_device_get_clock(const struct iio_dev *indio_dev)
> +{
> +       struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(indio_dev);
> +
> +       return iio_dev_opaque->clock_id;
> +}
> +EXPORT_SYMBOL(iio_device_get_clock);
> +
>  /**
>   * iio_get_time_ns() - utility function to get a time stamp for events etc
>   * @indio_dev: device
> diff --git a/include/linux/iio/iio-opaque.h b/include/linux/iio/iio-opaque.h
> index d7c3036861ac..c9504e9da571 100644
> --- a/include/linux/iio/iio-opaque.h
> +++ b/include/linux/iio/iio-opaque.h
> @@ -24,6 +24,7 @@
>   * @legacy_scan_el_group:      attribute group for legacy scan elements attribute group
>   * @legacy_buffer_group:       attribute group for legacy buffer attributes group
>   * @scan_index_timestamp:      cache of the index to the timestamp
> + * @clock_id:                  timestamping clock posix identifier
>   * @chrdev:                    associated character device
>   * @flags:                     file ops related flags including busy flag.
>   * @debugfs_dentry:            device specific debugfs dentry
> @@ -51,6 +52,7 @@ struct iio_dev_opaque {
>         struct attribute_group          legacy_buffer_group;
>
>         unsigned int                    scan_index_timestamp;
> +       clockid_t                       clock_id;
>         struct cdev                     chrdev;
>         unsigned long                   flags;
>
> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> index ed0537015eee..5606a3f4c4cb 100644
> --- a/include/linux/iio/iio.h
> +++ b/include/linux/iio/iio.h
> @@ -509,7 +509,6 @@ struct iio_buffer_setup_ops {
>   * @name:              [DRIVER] name of the device.
>   * @label:              [DRIVER] unique name to identify which device this is
>   * @info:              [DRIVER] callbacks and constant info from driver
> - * @clock_id:          [INTERN] timestamping clock posix identifier
>   * @setup_ops:         [DRIVER] callbacks to call before and after buffer
>   *                     enable/disable
>   * @priv:              [DRIVER] reference to driver's private information
> @@ -538,7 +537,6 @@ struct iio_dev {
>         const char                      *name;
>         const char                      *label;
>         const struct iio_info           *info;
> -       clockid_t                       clock_id;
>         const struct iio_buffer_setup_ops       *setup_ops;
>
>         void                            *priv;
> @@ -589,15 +587,7 @@ static inline void iio_device_put(struct iio_dev *indio_dev)
>                 put_device(&indio_dev->dev);
>  }
>
> -/**
> - * iio_device_get_clock() - Retrieve current timestamping clock for the device
> - * @indio_dev: IIO device structure containing the device
> - */
> -static inline clockid_t iio_device_get_clock(const struct iio_dev *indio_dev)
> -{
> -       return indio_dev->clock_id;
> -}
> -
> +clockid_t iio_device_get_clock(const struct iio_dev *indio_dev);
>  int iio_device_set_clock(struct iio_dev *indio_dev, clockid_t clock_id);
>
>  /**
> --
> 2.31.1
>




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux