Re: [PATCH 02/14] staging:iio:buffer: pull computation of scan length into a utility function.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/18/2012 03:13 PM, Jonathan Cameron wrote:
> Principal reason is to make later patches more coherent and easier to review
> but this set in itself separates a logical entity out nicely wihin the code.
> 
> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
> ---
>  drivers/staging/iio/industrialio-buffer.c |   28 ++++++++++++++++++++--------
>  1 files changed, 20 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/staging/iio/industrialio-buffer.c b/drivers/staging/iio/industrialio-buffer.c
> index 59b0caf..639b41a 100644
> --- a/drivers/staging/iio/industrialio-buffer.c
> +++ b/drivers/staging/iio/industrialio-buffer.c
> @@ -508,30 +508,41 @@ static const unsigned long *iio_scan_mask_match(const unsigned long *av_masks,

You edited the patch by hand... ;) The 30 should be a 29, also the next
patch doesn't apply anymore

>  	return NULL;
>  }
>  
> -int iio_sw_buffer_preenable(struct iio_dev *indio_dev)
> +static int iio_compute_scan_bytes(struct iio_dev *indio_dev, const long *mask,
> +				  bool timestamp)
>  {
> -	struct iio_buffer *buffer = indio_dev->buffer;
>  	const struct iio_chan_spec *ch;
>  	unsigned bytes = 0;
>  	int length, i;
> -	dev_dbg(&indio_dev->dev, "%s\n", __func__);
>  
>  	/* How much space will the demuxed element take? */
> -	for_each_set_bit(i, buffer->scan_mask,
> +	for_each_set_bit(i, mask,
>  			 indio_dev->masklength) {
>  		ch = iio_find_channel_from_si(indio_dev, i);
> -		length = ch->scan_type.storagebits/8;
> +		length = ch->scan_type.storagebits / 8;
>  		bytes = ALIGN(bytes, length);
>  		bytes += length;
>  	}
> -	if (buffer->scan_timestamp) {
> +	if (timestamp) {
>  		ch = iio_find_channel_from_si(indio_dev,
> -					      buffer->scan_index_timestamp);
> -		length = ch->scan_type.storagebits/8;
> +					      indio_dev
> +					      ->buffer->scan_index_timestamp);
> +		length = ch->scan_type.storagebits / 8;
>  		bytes = ALIGN(bytes, length);
>  		bytes += length;
>  	}
> +	return bytes;
> +}
> +
> +int iio_sw_buffer_preenable(struct iio_dev *indio_dev)
> +{
> +	struct iio_buffer *buffer = indio_dev->buffer;
> +	unsigned bytes;
> +	dev_dbg(&indio_dev->dev, "%s\n", __func__);
> +
> +	/* How much space will the demuxed element take? */
> +	bytes = iio_compute_scan_bytes(indio_dev, buffer->scan_mask,
> +				       buffer->scan_timestamp);
>  	buffer->access->set_bytes_per_datum(buffer, bytes);
>  
>  	/* What scan mask do we actually have ?*/

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux