Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1264809 authored by Jonathan Cameron's avatar Jonathan Cameron Committed by Greg Kroah-Hartman
Browse files

staging:iio: scan_index_timestamp move to iio_dev from buffer



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: default avatarJonathan Cameron <jic23@kernel.org>
Acked-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6b3b58ed
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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;

+3 −4
Original line number Diff line number Diff line
@@ -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;