Re: [PATCH 05/11] staging:iio:dummy: Register same channels for device and buffer

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

 



On Wed, Nov 26, 2014 at 7:55 PM, Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:
> In preparation for moving the buffer registration to the core make sure to
> register the same channel array for the device and the buffer. Currently the
> output voltage and the activity channels are not registered for the buffer,
> setting its scan index to -1 will make sure that it is skipped for the
> buffer.
>
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
> ---
>  drivers/staging/iio/iio_simple_dummy.c        | 13 +++++--------
>  drivers/staging/iio/iio_simple_dummy.h        |  3 +--
>  drivers/staging/iio/iio_simple_dummy_buffer.c |  6 +++---
>  3 files changed, 9 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c
> index 10a9e08..0b8611a 100644
> --- a/drivers/staging/iio/iio_simple_dummy.c
> +++ b/drivers/staging/iio/iio_simple_dummy.c
> @@ -239,6 +239,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
>         {
>                 .type = IIO_VOLTAGE,
>                 .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> +               .scan_index = -1, /* No buffer support */
>                 .output = 1,
>                 .indexed = 1,
>                 .channel = 0,
> @@ -248,7 +249,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
>                 .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_ENABLE) |
>                         BIT(IIO_CHAN_INFO_CALIBHEIGHT),
>                 .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
> -               .scan_index = -1,
> +               .scan_index = -1, /* No buffer support */
>  #ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS
>                 .event_spec = &step_detect_event,
>                 .num_event_specs = 1,
> @@ -259,6 +260,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
>                 .modified = 1,
>                 .channel2 = IIO_MOD_RUNNING,
>                 .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
> +               .scan_index = -1, /* No buffer support */
>  #ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS
>                 .event_spec = &iio_running_event,
>                 .num_event_specs = 1,
> @@ -269,6 +271,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
>                 .modified = 1,
>                 .channel2 = IIO_MOD_WALKING,
>                 .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
> +               .scan_index = -1, /* No buffer support */
>  #ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS
>                 .event_spec = &iio_walking_event,
>                 .num_event_specs = 1,
> @@ -638,13 +641,7 @@ static int iio_dummy_probe(int index)
>         if (ret < 0)
>                 goto error_free_device;
>
> -       /*
> -        * Configure buffered capture support and register the channels with the
> -        * buffer, but avoid the output channel being registered by reducing the
> -        * number of channels by 1.
> -        */
> -       ret = iio_simple_dummy_configure_buffer(indio_dev,
> -                                               iio_dummy_channels, 5);
> +       ret = iio_simple_dummy_configure_buffer(indio_dev);
>         if (ret < 0)
>                 goto error_unregister_events;
>
> diff --git a/drivers/staging/iio/iio_simple_dummy.h b/drivers/staging/iio/iio_simple_dummy.h
> index 3b714b4..af70126 100644
> --- a/drivers/staging/iio/iio_simple_dummy.h
> +++ b/drivers/staging/iio/iio_simple_dummy.h
> @@ -114,8 +114,7 @@ enum iio_simple_dummy_scan_elements {
>  };
>
>  #ifdef CONFIG_IIO_SIMPLE_DUMMY_BUFFER
> -int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev,
> -       const struct iio_chan_spec *channels, unsigned int num_channels);
> +int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev);
>  void iio_simple_dummy_unconfigure_buffer(struct iio_dev *indio_dev);
>  #else
>  static inline int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev,
> diff --git a/drivers/staging/iio/iio_simple_dummy_buffer.c b/drivers/staging/iio/iio_simple_dummy_buffer.c
> index fd74f91..35d60d5 100644
> --- a/drivers/staging/iio/iio_simple_dummy_buffer.c
> +++ b/drivers/staging/iio/iio_simple_dummy_buffer.c
> @@ -115,8 +115,7 @@ static const struct iio_buffer_setup_ops iio_simple_dummy_buffer_setup_ops = {
>         .predisable = &iio_triggered_buffer_predisable,
>  };
>
> -int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev,
> -       const struct iio_chan_spec *channels, unsigned int num_channels)
> +int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev)
>  {
>         int ret;
>         struct iio_buffer *buffer;
> @@ -173,7 +172,8 @@ int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev,
>          */
>         indio_dev->modes |= INDIO_BUFFER_TRIGGERED;
>
> -       ret = iio_buffer_register(indio_dev, channels, num_channels);
> +       ret = iio_buffer_register(indio_dev, indio_dev->channels,
> +                                 indio_dev->num_channels);
>         if (ret)
>                 goto error_dealloc_pollfunc;
>

Looks good. I guess this can replace the following patch:

iio: dummy: set scan_index for unbuffered channels

http://marc.info/?l=linux-iio&m=141693190013582&w=2

thanks,
Daniel.
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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