staging:iio: scan_index_timestamp move to iio_dev from buffer
authorJonathan Cameron <jic23@kernel.org>
Sat, 21 Apr 2012 09:09:34 +0000 (10:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Apr 2012 18:23:37 +0000 (11:23 -0700)
This is just a locally cached value that is device specific (rather
than buffer specific.) Hence it wants to come out of the buffer before
we add multiple buffer support.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/iio/buffer.h
drivers/staging/iio/iio.h
drivers/staging/iio/industrialio-buffer.c

index df2046d..3d3ea9e 100644 (file)
@@ -56,7 +56,6 @@ struct iio_buffer_access_funcs {
  * @scan_el_attrs:     [DRIVER] control of scan elements if that scan mode
  *                     control method is used
  * @scan_mask:         [INTERN] bitmask used in masking scan mode elements
- * @scan_index_timestamp:[INTERN] cache of the index to the timestamp
  * @scan_timestamp:    [INTERN] does the scan mode include a timestamp
  * @access:            [DRIVER] buffer access functions associated with the
  *                     implementation.
@@ -74,7 +73,6 @@ struct iio_buffer {
        struct attribute_group                  *scan_el_attrs;
        long                                    *scan_mask;
        bool                                    scan_timestamp;
-       unsigned                                scan_index_timestamp;
        const struct iio_buffer_access_funcs    *access;
        struct list_head                        scan_el_dev_attr_list;
        struct attribute_group                  scan_el_group;
index a562763..6832c98 100644 (file)
@@ -305,6 +305,7 @@ struct iio_buffer_setup_ops {
  * @masklength:                [INTERN] the length of the mask established from
  *                     channels
  * @active_scan_mask:  [INTERN] union of all scan masks requested by buffers
+ * @scan_index_timestamp:[INTERN] cache of the index to the timestamp
  * @trig:              [INTERN] current device trigger (buffer modes)
  * @pollfunc:          [DRIVER] function run on trigger being received
  * @channels:          [DRIVER] channel specification structure table
@@ -339,6 +340,7 @@ struct iio_dev {
        const unsigned long             *available_scan_masks;
        unsigned                        masklength;
        const unsigned long             *active_scan_mask;
+       unsigned                        scan_index_timestamp;
        struct iio_trigger              *trig;
        struct iio_poll_func            *pollfunc;
 
index 389fe16..0359161 100644 (file)
@@ -296,7 +296,7 @@ int iio_buffer_register(struct iio_dev *indio_dev,
                                goto error_cleanup_dynamic;
                        attrcount += ret;
                        if (channels[i].type == IIO_TIMESTAMP)
-                               buffer->scan_index_timestamp =
+                               indio_dev->scan_index_timestamp =
                                        channels[i].scan_index;
                }
                if (indio_dev->masklength && buffer->scan_mask == NULL) {
@@ -525,8 +525,7 @@ static int iio_compute_scan_bytes(struct iio_dev *indio_dev, const long *mask,
        }
        if (timestamp) {
                ch = iio_find_channel_from_si(indio_dev,
-                                             indio_dev
-                                             ->buffer->scan_index_timestamp);
+                                             indio_dev->scan_index_timestamp);
                length = ch->scan_type.storagebits / 8;
                bytes = ALIGN(bytes, length);
                bytes += length;
@@ -721,7 +720,7 @@ int iio_update_demux(struct iio_dev *indio_dev)
                        goto error_clear_mux_table;
                }
                ch = iio_find_channel_from_si(indio_dev,
-                       buffer->scan_index_timestamp);
+                       indio_dev->scan_index_timestamp);
                length = ch->scan_type.storagebits/8;
                if (out_loc % length)
                        out_loc += length - out_loc % length;