Message ID | 20210422101911.135630-5-nuno.sa@analog.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Adis IRQ fixes and minor improvements | expand |
On Thu, Apr 22, 2021 at 1:17 PM Nuno Sa <nuno.sa@analog.com> 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@gmail.com> > Signed-off-by: Nuno Sa <nuno.sa@analog.com> > --- > 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 >
On Fri, 23 Apr 2021 10:14:48 +0300 Alexandru Ardelean <ardeleanalex@gmail.com> wrote: > On Thu, Apr 22, 2021 at 1:17 PM Nuno Sa <nuno.sa@analog.com> 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@gmail.com> Applied to the togreg branch of iio.git. Thanks, Jonathan > > > Signed-off-by: Nuno Sa <nuno.sa@analog.com> > > --- > > 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 > >
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;
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. Signed-off-by: Nuno Sa <nuno.sa@analog.com> --- drivers/iio/imu/adis_buffer.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)