gpio: pca953x: return IRQ_NONE when appropriate

The irq handler should return IRQ_NONE or IRQ_HANDLED to report
if we have handled the interrupt.

Signed-off-by: Toby Smith <toby@tismith.id.au>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Toby Smith 2014-04-30 18:01:40 +10:00 committed by Linus Walleij
parent dd640039e8
commit 3275d0723a
1 changed files with 4 additions and 2 deletions

View File

@ -503,10 +503,11 @@ static irqreturn_t pca953x_irq_handler(int irq, void *devid)
struct pca953x_chip *chip = devid;
u8 pending[MAX_BANK];
u8 level;
unsigned nhandled = 0;
int i;
if (!pca953x_irq_pending(chip, pending))
return IRQ_HANDLED;
return IRQ_NONE;
for (i = 0; i < NBANK(chip); i++) {
while (pending[i]) {
@ -514,10 +515,11 @@ static irqreturn_t pca953x_irq_handler(int irq, void *devid)
handle_nested_irq(irq_find_mapping(chip->domain,
level + (BANK_SZ * i)));
pending[i] &= ~(1 << level);
nhandled++;
}
}
return IRQ_HANDLED;
return (nhandled > 0) ? IRQ_HANDLED : IRQ_NONE;
}
static int pca953x_gpio_irq_map(struct irq_domain *d, unsigned int irq,