On Thu, Apr 22, 2021 at 1:17 PM Nuno Sa <nuno.sa@xxxxxxxxxx> wrote: > > On the trigger handler, we might need to change the device page. Hence, > we should check the return value from 'spi_write()' and act accordingly. > Reviewed-by: Alexandru Ardelean <ardeleanalex@xxxxxxxxx> > Signed-off-by: Nuno Sa <nuno.sa@xxxxxxxxxx> > --- > drivers/iio/imu/adis_buffer.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c > index 175af154e443..0ae551a748eb 100644 > --- a/drivers/iio/imu/adis_buffer.c > +++ b/drivers/iio/imu/adis_buffer.c > @@ -134,7 +134,12 @@ static irqreturn_t adis_trigger_handler(int irq, void *p) > if (adis->current_page != 0) { > adis->tx[0] = ADIS_WRITE_REG(ADIS_REG_PAGE_ID); > adis->tx[1] = 0; > - spi_write(adis->spi, adis->tx, 2); > + ret = spi_write(adis->spi, adis->tx, 2); > + if (ret) { > + dev_err(&adis->spi->dev, "Failed to change device page: %d\n", ret); > + mutex_unlock(&adis->state_lock); > + goto irq_done; > + } > } > } > > @@ -151,6 +156,7 @@ static irqreturn_t adis_trigger_handler(int irq, void *p) > iio_push_to_buffers_with_timestamp(indio_dev, adis->buffer, > pf->timestamp); > > +irq_done: > iio_trigger_notify_done(indio_dev->trig); > > return IRQ_HANDLED; > -- > 2.31.1 >