summaryrefslogtreecommitdiff
path: root/drivers/staging/iio
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@cam.ac.uk>2011-12-06 01:37:11 +0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-12-08 23:36:11 +0400
commitbeb80600b017ff4c407e9e72eb7f9a884fed4210 (patch)
tree106f3bab1293ab3e6a759c6935340ca443fb33a7 /drivers/staging/iio
parent5fb21c824e8ff22ae9361a789e8b845d72ae0557 (diff)
downloadlinux-beb80600b017ff4c407e9e72eb7f9a884fed4210.tar.xz
staging:iio:buffer add a cache of the timestamp scan index.
Basically avoids looking it up lots of times. Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio')
-rw-r--r--drivers/staging/iio/buffer.h1
-rw-r--r--drivers/staging/iio/industrialio-buffer.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/staging/iio/buffer.h b/drivers/staging/iio/buffer.h
index 9de581e2d764..4b8f6190a5b0 100644
--- a/drivers/staging/iio/buffer.h
+++ b/drivers/staging/iio/buffer.h
@@ -106,6 +106,7 @@ struct iio_buffer {
int scan_count;
long *scan_mask;
bool scan_timestamp;
+ unsigned scan_index_timestamp;
const struct iio_buffer_access_funcs *access;
const struct iio_buffer_setup_ops *setup_ops;
struct list_head scan_el_dev_attr_list;
diff --git a/drivers/staging/iio/industrialio-buffer.c b/drivers/staging/iio/industrialio-buffer.c
index 8c5598081b60..b2cf3e33e39b 100644
--- a/drivers/staging/iio/industrialio-buffer.c
+++ b/drivers/staging/iio/industrialio-buffer.c
@@ -313,6 +313,9 @@ int iio_buffer_register(struct iio_dev *indio_dev,
if (ret < 0)
goto error_cleanup_dynamic;
attrcount += ret;
+ if (channels[i].type == IIO_TIMESTAMP)
+ buffer->scan_index_timestamp =
+ channels[i].scan_index;
}
if (indio_dev->masklength && buffer->scan_mask == NULL) {
buffer->scan_mask = kcalloc(BITS_TO_LONGS(indio_dev->masklength),