summaryrefslogtreecommitdiff
path: root/drivers/iio/light
diff options
context:
space:
mode:
authorMatt Ranostay <mranostay@gmail.com>2016-03-18 06:48:07 +0300
committerJonathan Cameron <jic23@kernel.org>2016-03-20 13:33:33 +0300
commit655048a0b98bc6288ce87cb95a18bf4cada6c1a9 (patch)
tree6e9f3565de467144a6ebd56548521ef31251a50d /drivers/iio/light
parent5c913eb92eb1143806dd295cd2f29e48c00c93fd (diff)
downloadlinux-655048a0b98bc6288ce87cb95a18bf4cada6c1a9.tar.xz
iio: light: apds9960: correct FIFO check condition
Correct issue that the last entry in FIFO was being read twice due to an incorrect decrement of entry count variable before condition check. Signed-off-by: Matt Ranostay <mranostay@gmail.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/light')
-rw-r--r--drivers/iio/light/apds9960.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index f6a07dc32ae4..a6af56ad10e1 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -769,7 +769,7 @@ static void apds9960_read_gesture_fifo(struct apds9960_data *data)
mutex_lock(&data->lock);
data->gesture_mode_running = 1;
- while (cnt-- || (cnt = apds9660_fifo_is_empty(data) > 0)) {
+ while (cnt || (cnt = apds9660_fifo_is_empty(data) > 0)) {
ret = regmap_bulk_read(data->regmap, APDS9960_REG_GFIFO_BASE,
&data->buffer, 4);
@@ -777,6 +777,7 @@ static void apds9960_read_gesture_fifo(struct apds9960_data *data)
goto err_read;
iio_push_to_buffers(data->indio_dev, data->buffer);
+ cnt--;
}
err_read: