diff options
author | Matt Ranostay <mranostay@gmail.com> | 2016-03-18 06:48:07 +0300 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2016-03-20 13:33:33 +0300 |
commit | 655048a0b98bc6288ce87cb95a18bf4cada6c1a9 (patch) | |
tree | 6e9f3565de467144a6ebd56548521ef31251a50d /drivers/iio | |
parent | 5c913eb92eb1143806dd295cd2f29e48c00c93fd (diff) | |
download | linux-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')
-rw-r--r-- | drivers/iio/light/apds9960.c | 3 |
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: |