From: Brian Masney Date: Sat, 21 Apr 2018 00:41:43 +0000 (-0400) Subject: staging: iio: tsl2x7x: don't return error in IRQ handler X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3605dfb8510c52b3b2b5e0390cba29d54847a7b7;p=openwrt%2Fstaging%2Fblogic.git staging: iio: tsl2x7x: don't return error in IRQ handler 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 Signed-off-by: Jonathan Cameron --- diff --git a/drivers/staging/iio/light/tsl2x7x.c b/drivers/staging/iio/light/tsl2x7x.c index eeccfbb0eb1f..955a08e57cf3 100644 --- a/drivers/staging/iio/light/tsl2x7x.c +++ b/drivers/staging/iio/light/tsl2x7x.c @@ -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; }