aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/iio/accel/adis16201_ring.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-01-13 15:00:22 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-01-13 15:00:22 +0000
commit4de3a8e101150feaefa1139611a50ff37467f33e (patch)
treedaada742542518b02d7db7c5d32e715eaa5f166d /drivers/staging/iio/accel/adis16201_ring.c
parentARM: 7275/1: LPAE: Check the CPU support for the long descriptor format (diff)
parentMerge branch 'akpm' (aka "Andrew's patch-bomb, take two") (diff)
downloadlinux-dev-4de3a8e101150feaefa1139611a50ff37467f33e.tar.xz
linux-dev-4de3a8e101150feaefa1139611a50ff37467f33e.zip
Merge branch 'master' into fixes
Diffstat (limited to 'drivers/staging/iio/accel/adis16201_ring.c')
-rw-r--r--drivers/staging/iio/accel/adis16201_ring.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/staging/iio/accel/adis16201_ring.c b/drivers/staging/iio/accel/adis16201_ring.c
index 0016ed378e3a..26c610faee3f 100644
--- a/drivers/staging/iio/accel/adis16201_ring.c
+++ b/drivers/staging/iio/accel/adis16201_ring.c
@@ -74,11 +74,11 @@ static irqreturn_t adis16201_trigger_handler(int irq, void *p)
return -ENOMEM;
}
- if (ring->scan_count)
- if (adis16201_read_ring_data(indio_dev, st->rx) >= 0)
- for (; i < ring->scan_count; i++)
- data[i] = be16_to_cpup(
- (__be16 *)&(st->rx[i*2]));
+ if (!bitmap_empty(indio_dev->active_scan_mask, indio_dev->masklength)
+ && adis16201_read_ring_data(indio_dev, st->rx) >= 0)
+ for (; i < bitmap_weight(indio_dev->active_scan_mask,
+ indio_dev->masklength); i++)
+ data[i] = be16_to_cpup((__be16 *)&(st->rx[i*2]));
/* Guaranteed to be aligned with 8 byte boundary */
if (ring->scan_timestamp)
@@ -116,11 +116,9 @@ int adis16201_configure_ring(struct iio_dev *indio_dev)
}
indio_dev->buffer = ring;
/* Effectively select the ring buffer implementation */
- ring->bpe = 2;
ring->scan_timestamp = true;
ring->access = &ring_sw_access_funcs;
- ring->setup_ops = &adis16201_ring_setup_ops;
- ring->owner = THIS_MODULE;
+ indio_dev->setup_ops = &adis16201_ring_setup_ops;
indio_dev->pollfunc = iio_alloc_pollfunc(&iio_pollfunc_store_time,
&adis16201_trigger_handler,