iio: adis16475: do not return ints in irq handlers
authorNuno Sa <nuno.sa@analog.com>
Tue, 27 Apr 2021 08:54:49 +0000 (10:54 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 17 May 2021 12:49:09 +0000 (13:49 +0100)
On an IRQ handler we should not return normal error codes as 'irqreturn_t'
is expected.

This is done by jumping to the 'check_burst32' label where we return
'IRQ_HANDLED'. Note that it is fine to do the burst32 check in this
error path. If we have proper settings to apply burst32, we might just
do the setup now so that the next sample already uses it.

Fixes: fff7352bf7a3c ("iio: imu: Add support for adis16475")
Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20210427085454.30616-2-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/adis16475.c

index 1de62fc..51b7644 100644 (file)
@@ -1068,7 +1068,7 @@ static irqreturn_t adis16475_trigger_handler(int irq, void *p)
 
        ret = spi_sync(adis->spi, &adis->msg);
        if (ret)
-               return ret;
+               goto check_burst32;
 
        adis->spi->max_speed_hz = cached_spi_speed_hz;
        buffer = adis->buffer;