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@xxxxxxxxxx> Acked-by: Jonathan Cameron <jic23@xxxxxxxxxx> > --- > 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); > -- 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