staging:iio:dummy: Register same channels for device and buffer
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 26 Nov 2014 17:55:11 +0000 (18:55 +0100)
committerJonathan Cameron <jic23@kernel.org>
Fri, 12 Dec 2014 12:28:30 +0000 (12:28 +0000)
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@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/iio_simple_dummy.c
drivers/staging/iio/iio_simple_dummy.h
drivers/staging/iio/iio_simple_dummy_buffer.c

index 10a9e0882bbc5830bfc56833eccdc4c8dac0e15c..0b8611ac100308978efb4a04e81932f78437da9d 100644 (file)
@@ -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;
 
index 3b714b486f5e40647899d53daf2bdad84548fa2a..af7012618be63c8c1d9d525ef4fbcfd5910dd67c 100644 (file)
@@ -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,
index fd74f9166a5f92284563669426b800f66d2b9bbd..35d60d5045dcbcc9cd24f7512f47a545c20332b4 100644 (file)
@@ -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;