linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] staging:iio: Fix scan mask update
@ 2011-12-07 14:43 Lars-Peter Clausen
  2011-12-08  9:48 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Lars-Peter Clausen @ 2011-12-07 14:43 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Michael Hennerich, linux-iio, device-drivers-devel, drivers,
	Lars-Peter Clausen

When updating the scan mask we have to check the actual scan mask for if the
channel is already enabled, not the matching scan mask from the available
scan masks. The bit will already be set there and as a result the actual
scan mask will not get updated and the channel stays disabled.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/industrialio-buffer.c |   12 ++----------
 1 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/iio/industrialio-buffer.c b/drivers/staging/iio/industrialio-buffer.c
index f629e8b..a539c7c 100644
--- a/drivers/staging/iio/industrialio-buffer.c
+++ b/drivers/staging/iio/industrialio-buffer.c
@@ -171,7 +171,7 @@ static ssize_t iio_scan_el_store(struct device *dev,
 error_ret:
 	mutex_unlock(&indio_dev->mlock);
 
-	return ret ? ret : len;
+	return ret < 0 ? ret : len;
 
 }
 
@@ -617,16 +617,8 @@ int iio_scan_mask_query(struct iio_dev *indio_dev,
 
 	if (!buffer->scan_mask)
 		return 0;
-	if (indio_dev->available_scan_masks)
-		mask = iio_scan_mask_match(indio_dev->available_scan_masks,
-					   indio_dev->masklength,
-					   buffer->scan_mask);
-	else
-		mask = buffer->scan_mask;
-	if (!mask)
-		return 0;
 
-	return test_bit(bit, mask);
+	return test_bit(bit, buffer->scan_mask);
 };
 EXPORT_SYMBOL_GPL(iio_scan_mask_query);
 
-- 
1.7.7.3

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] staging:iio: Fix scan mask update
  2011-12-07 14:43 [PATCH] staging:iio: Fix scan mask update Lars-Peter Clausen
@ 2011-12-08  9:48 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2011-12-08  9:48 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Jonathan Cameron, Michael Hennerich, linux-iio,
	device-drivers-devel, drivers

On 12/07/2011 02:43 PM, Lars-Peter Clausen wrote:
> When updating the scan mask we have to check the actual scan mask for if the
> channel is already enabled, not the matching scan mask from the available
> scan masks. The bit will already be set there and as a result the actual
> scan mask will not get updated and the channel stays disabled.
Dratt, I messed this case up didn't I!  I guess my tests only make
changes that effect the scan mask.  Oops.

Thanks for the catch.  This is clearly a hole in my tests...

> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Jonathan Cameron <jic23@kernel.org>

> ---
>  drivers/staging/iio/industrialio-buffer.c |   12 ++----------
>  1 files changed, 2 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/staging/iio/industrialio-buffer.c b/drivers/staging/iio/industrialio-buffer.c
> index f629e8b..a539c7c 100644
> --- a/drivers/staging/iio/industrialio-buffer.c
> +++ b/drivers/staging/iio/industrialio-buffer.c
> @@ -171,7 +171,7 @@ static ssize_t iio_scan_el_store(struct device *dev,
>  error_ret:
>  	mutex_unlock(&indio_dev->mlock);
>  
> -	return ret ? ret : len;
> +	return ret < 0 ? ret : len;
>  
>  }
>  
> @@ -617,16 +617,8 @@ int iio_scan_mask_query(struct iio_dev *indio_dev,
>  
>  	if (!buffer->scan_mask)
>  		return 0;
> -	if (indio_dev->available_scan_masks)
> -		mask = iio_scan_mask_match(indio_dev->available_scan_masks,
> -					   indio_dev->masklength,
> -					   buffer->scan_mask);
> -	else
> -		mask = buffer->scan_mask;
> -	if (!mask)
> -		return 0;
>  
> -	return test_bit(bit, mask);
> +	return test_bit(bit, buffer->scan_mask);
>  };
>  EXPORT_SYMBOL_GPL(iio_scan_mask_query);
>  

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-12-08  9:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-07 14:43 [PATCH] staging:iio: Fix scan mask update Lars-Peter Clausen
2011-12-08  9:48 ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).