iio: adis_buffer: update device page after changing it
authorNuno Sa <nuno.sa@analog.com>
Tue, 27 Apr 2021 08:54:50 +0000 (10:54 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 17 May 2021 12:49:09 +0000 (13:49 +0100)
It makes more sense to update the device page as soon as we we
successfully changed it. Moreover, a follow up patch will handle
'spi_sync' error path which would leave 'current_page' in a inconsistent
state.

Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Link: https://lore.kernel.org/r/20210427085454.30616-3-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/adis_buffer.c

index 0ae551a748ebbb984c18907209b10fcb2c9184c8..4fc0e0ca75619f253f9d04cf114f0b555a9d8556 100644 (file)
@@ -140,6 +140,8 @@ static irqreturn_t adis_trigger_handler(int irq, void *p)
                                mutex_unlock(&adis->state_lock);
                                goto irq_done;
                        }
+
+                       adis->current_page = 0;
                }
        }
 
@@ -148,10 +150,8 @@ static irqreturn_t adis_trigger_handler(int irq, void *p)
                dev_err(&adis->spi->dev, "Failed to read data: %d", ret);
 
 
-       if (adis->data->has_paging) {
-               adis->current_page = 0;
+       if (adis->data->has_paging)
                mutex_unlock(&adis->state_lock);
-       }
 
        iio_push_to_buffers_with_timestamp(indio_dev, adis->buffer,
                pf->timestamp);