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 04/12/14 14:27, Daniel Baluta wrote:
> 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 for pointing that out.  Applied this one to the togreg
branch of iio.git.


> 
> 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
> 

--
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