From 3dade067d90ff00b61df8057bda3d8407328cbfd Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Fri, 15 Apr 2011 18:55:57 +0100 Subject: [PATCH] --- yaml --- r: 249195 b: refs/heads/master c: 9cc559891181d354cc5b83d0cfecbe262d690b32 h: refs/heads/master i: 249193: 3619ca4b51baecb523050969d29c31654675e61a 249191: b38737bdb93e1bf4abb0bd93cb0a17ddd503acec v: v3 --- [refs] | 2 +- trunk/drivers/staging/iio/adc/max1363_core.c | 12 ++++++++++++ trunk/drivers/staging/iio/adc/max1363_ring.c | 10 ++++++---- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 105a12e4b0eb..c12259696eae 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6f7c8ee585e9db54cb29af1bdb93f29837824933 +refs/heads/master: 9cc559891181d354cc5b83d0cfecbe262d690b32 diff --git a/trunk/drivers/staging/iio/adc/max1363_core.c b/trunk/drivers/staging/iio/adc/max1363_core.c index 1703b2a74ace..41af82c50e7f 100644 --- a/trunk/drivers/staging/iio/adc/max1363_core.c +++ b/trunk/drivers/staging/iio/adc/max1363_core.c @@ -72,6 +72,9 @@ static MAX1363_SCAN_EL_D(7, 6, 21); static MAX1363_SCAN_EL_D(9, 8, 22); static MAX1363_SCAN_EL_D(11, 10, 23); +static IIO_SCAN_EL_TIMESTAMP(24); +static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64); + static const struct max1363_mode max1363_mode_table[] = { /* All of the single channel options first */ MAX1363_MODE_SINGLE(0, 1 << 0), @@ -402,6 +405,9 @@ static struct attribute *max1363_scan_el_attrs[] = { &iio_const_attr_in1min0_index.dev_attr.attr, &iio_scan_el_in3min2.dev_attr.attr, &dev_attr_in3min2_type.attr, &iio_const_attr_in3min2_index.dev_attr.attr, + &iio_const_attr_timestamp_index.dev_attr.attr, + &iio_scan_el_timestamp.dev_attr.attr, + &iio_const_attr_timestamp_type.dev_attr.attr, NULL, }; @@ -515,6 +521,9 @@ static struct attribute *max1238_scan_el_attrs[] = { &iio_const_attr_in9min8_index.dev_attr.attr, &iio_scan_el_in11min10.dev_attr.attr, &dev_attr_in11min10_type.attr, &iio_const_attr_in11min10_index.dev_attr.attr, + &iio_const_attr_timestamp_index.dev_attr.attr, + &iio_scan_el_timestamp.dev_attr.attr, + &iio_const_attr_timestamp_type.dev_attr.attr, NULL, }; @@ -601,6 +610,9 @@ static struct attribute *max11608_scan_el_attrs[] = { &iio_const_attr_in5min4_index.dev_attr.attr, &iio_scan_el_in7min6.dev_attr.attr, &dev_attr_in7min6_type.attr, &iio_const_attr_in7min6_index.dev_attr.attr, + &iio_const_attr_timestamp_index.dev_attr.attr, + &iio_scan_el_timestamp.dev_attr.attr, + &iio_const_attr_timestamp_type.dev_attr.attr, NULL }; diff --git a/trunk/drivers/staging/iio/adc/max1363_ring.c b/trunk/drivers/staging/iio/adc/max1363_ring.c index d36fcc62e976..96894bd6d71b 100644 --- a/trunk/drivers/staging/iio/adc/max1363_ring.c +++ b/trunk/drivers/staging/iio/adc/max1363_ring.c @@ -76,7 +76,7 @@ static int max1363_ring_preenable(struct iio_dev *indio_dev) { struct max1363_state *st = indio_dev->dev_data; struct iio_ring_buffer *ring = indio_dev->ring; - size_t d_size; + size_t d_size = 0; unsigned long numvals; /* @@ -92,11 +92,13 @@ static int max1363_ring_preenable(struct iio_dev *indio_dev) numvals = hweight_long(st->current_mode->modemask); if (ring->access.set_bytes_per_datum) { + if (ring->scan_timestamp) + d_size += sizeof(s64); if (st->chip_info->bits != 8) - d_size = numvals*2 + sizeof(s64); + d_size += numvals*2; else - d_size = numvals + sizeof(s64); - if (d_size % 8) + d_size += numvals; + if (ring->scan_timestamp && (d_size % 8)) d_size += 8 - (d_size % 8); ring->access.set_bytes_per_datum(ring, d_size); }