| From 61bd55ce1667809f022be88da77db17add90ea4e Mon Sep 17 00:00:00 2001 |
| From: Lars-Peter Clausen <lars@metafoo.de> |
| Date: Thu, 17 Jul 2014 16:59:00 +0100 |
| Subject: iio: buffer: Fix demux table creation |
| |
| From: Lars-Peter Clausen <lars@metafoo.de> |
| |
| commit 61bd55ce1667809f022be88da77db17add90ea4e upstream. |
| |
| When creating the demux table we need to iterate over the selected scan mask for |
| the buffer to get the samples which should be copied to destination buffer. |
| Right now the code uses the mask which contains all active channels, which means |
| the demux table contains entries which causes it to copy all the samples from |
| source to destination buffer one by one without doing any demuxing. |
| |
| Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> |
| Signed-off-by: Jonathan Cameron <jic23@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/iio/industrialio-buffer.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/iio/industrialio-buffer.c |
| +++ b/drivers/iio/industrialio-buffer.c |
| @@ -949,7 +949,7 @@ static int iio_buffer_update_demux(struc |
| |
| /* Now we have the two masks, work from least sig and build up sizes */ |
| for_each_set_bit(out_ind, |
| - indio_dev->active_scan_mask, |
| + buffer->scan_mask, |
| indio_dev->masklength) { |
| in_ind = find_next_bit(indio_dev->active_scan_mask, |
| indio_dev->masklength, |