iio:ad5064: Fix off by one in DAC value range check
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 1 Mar 2013 13:07:00 +0000 (13:07 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sat, 2 Mar 2013 16:28:42 +0000 (16:28 +0000)
The DAC value range check allows values one larger than the maximum value, which
effectively results in setting the DAC value to 0. This patch fixes the issue.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/dac/ad5064.c

index 7b77708..f724a54 100644 (file)
@@ -257,7 +257,7 @@ static int ad5064_write_raw(struct iio_dev *indio_dev,
 
        switch (mask) {
        case IIO_CHAN_INFO_RAW:
-               if (val > (1 << chan->scan_type.realbits) || val < 0)
+               if (val >= (1 << chan->scan_type.realbits) || val < 0)
                        return -EINVAL;
 
                mutex_lock(&indio_dev->mlock);