Commit 4ae03019 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Jonathan Cameron

staging:iio:dummy: Register same channels for device and buffer

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: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 131e97d3
...@@ -239,6 +239,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = { ...@@ -239,6 +239,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
{ {
.type = IIO_VOLTAGE, .type = IIO_VOLTAGE,
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
.scan_index = -1, /* No buffer support */
.output = 1, .output = 1,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
...@@ -248,7 +249,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = { ...@@ -248,7 +249,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_ENABLE) | .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_ENABLE) |
BIT(IIO_CHAN_INFO_CALIBHEIGHT), BIT(IIO_CHAN_INFO_CALIBHEIGHT),
.info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
.scan_index = -1, .scan_index = -1, /* No buffer support */
#ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS #ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS
.event_spec = &step_detect_event, .event_spec = &step_detect_event,
.num_event_specs = 1, .num_event_specs = 1,
...@@ -259,6 +260,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = { ...@@ -259,6 +260,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_RUNNING, .channel2 = IIO_MOD_RUNNING,
.info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
.scan_index = -1, /* No buffer support */
#ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS #ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS
.event_spec = &iio_running_event, .event_spec = &iio_running_event,
.num_event_specs = 1, .num_event_specs = 1,
...@@ -269,6 +271,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = { ...@@ -269,6 +271,7 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_WALKING, .channel2 = IIO_MOD_WALKING,
.info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
.scan_index = -1, /* No buffer support */
#ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS #ifdef CONFIG_IIO_SIMPLE_DUMMY_EVENTS
.event_spec = &iio_walking_event, .event_spec = &iio_walking_event,
.num_event_specs = 1, .num_event_specs = 1,
...@@ -638,13 +641,7 @@ static int iio_dummy_probe(int index) ...@@ -638,13 +641,7 @@ static int iio_dummy_probe(int index)
if (ret < 0) if (ret < 0)
goto error_free_device; goto error_free_device;
/* ret = iio_simple_dummy_configure_buffer(indio_dev);
* 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);
if (ret < 0) if (ret < 0)
goto error_unregister_events; goto error_unregister_events;
......
...@@ -114,8 +114,7 @@ enum iio_simple_dummy_scan_elements { ...@@ -114,8 +114,7 @@ enum iio_simple_dummy_scan_elements {
}; };
#ifdef CONFIG_IIO_SIMPLE_DUMMY_BUFFER #ifdef CONFIG_IIO_SIMPLE_DUMMY_BUFFER
int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev, int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev);
const struct iio_chan_spec *channels, unsigned int num_channels);
void iio_simple_dummy_unconfigure_buffer(struct iio_dev *indio_dev); void iio_simple_dummy_unconfigure_buffer(struct iio_dev *indio_dev);
#else #else
static inline int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev, static inline int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev,
......
...@@ -115,8 +115,7 @@ static const struct iio_buffer_setup_ops iio_simple_dummy_buffer_setup_ops = { ...@@ -115,8 +115,7 @@ static const struct iio_buffer_setup_ops iio_simple_dummy_buffer_setup_ops = {
.predisable = &iio_triggered_buffer_predisable, .predisable = &iio_triggered_buffer_predisable,
}; };
int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev, int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev)
const struct iio_chan_spec *channels, unsigned int num_channels)
{ {
int ret; int ret;
struct iio_buffer *buffer; struct iio_buffer *buffer;
...@@ -173,7 +172,8 @@ int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev, ...@@ -173,7 +172,8 @@ int iio_simple_dummy_configure_buffer(struct iio_dev *indio_dev,
*/ */
indio_dev->modes |= INDIO_BUFFER_TRIGGERED; 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) if (ret)
goto error_dealloc_pollfunc; goto error_dealloc_pollfunc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment