staging: iio: tsl2x7x: don't return error in IRQ handler
authorBrian Masney <masneyb@onstation.org>
Sat, 21 Apr 2018 00:41:43 +0000 (20:41 -0400)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 28 Apr 2018 15:17:59 +0000 (16:17 +0100)
tsl2x7x_event_handler() could return an error and this could cause the
interrupt to remain masked. We shouldn't return an error in the
interrupt handler so this patch always returns IRQ_HANDLED. An error
will be logged if one occurs.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/staging/iio/light/tsl2x7x.c

index eeccfbb..955a08e 100644 (file)
@@ -1328,7 +1328,7 @@ static irqreturn_t tsl2x7x_event_handler(int irq, void *private)
 
        ret = tsl2x7x_read_status(chip);
        if (ret < 0)
-               return ret;
+               return IRQ_HANDLED;
 
        /* What type of interrupt do we need to process */
        if (ret & TSL2X7X_STA_PRX_INTR) {
@@ -1349,9 +1349,7 @@ static irqreturn_t tsl2x7x_event_handler(int irq, void *private)
                               timestamp);
        }
 
-       ret = tsl2x7x_clear_interrupts(chip, TSL2X7X_CMD_PROXALS_INT_CLR);
-       if (ret < 0)
-               return ret;
+       tsl2x7x_clear_interrupts(chip, TSL2X7X_CMD_PROXALS_INT_CLR);
 
        return IRQ_HANDLED;
 }