Commit ccd80c71 authored by Mark Brown's avatar Mark Brown Committed by Samuel Ortiz

mfd: Acknowledge WM8994 IRQs before reporting

This ensures we never have a window where we've handled an interrupt but
not told the hardware about it.
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 88c93977
...@@ -231,12 +231,6 @@ static irqreturn_t wm8994_irq_thread(int irq, void *data) ...@@ -231,12 +231,6 @@ static irqreturn_t wm8994_irq_thread(int irq, void *data)
status[i] &= ~wm8994->irq_masks_cur[i]; status[i] &= ~wm8994->irq_masks_cur[i];
} }
/* Report */
for (i = 0; i < ARRAY_SIZE(wm8994_irqs); i++) {
if (status[wm8994_irqs[i].reg - 1] & wm8994_irqs[i].mask)
handle_nested_irq(wm8994->irq_base + i);
}
/* Ack any unmasked IRQs */ /* Ack any unmasked IRQs */
for (i = 0; i < ARRAY_SIZE(status); i++) { for (i = 0; i < ARRAY_SIZE(status); i++) {
if (status[i]) if (status[i])
...@@ -244,6 +238,12 @@ static irqreturn_t wm8994_irq_thread(int irq, void *data) ...@@ -244,6 +238,12 @@ static irqreturn_t wm8994_irq_thread(int irq, void *data)
status[i]); status[i]);
} }
/* Report */
for (i = 0; i < ARRAY_SIZE(wm8994_irqs); i++) {
if (status[wm8994_irqs[i].reg - 1] & wm8994_irqs[i].mask)
handle_nested_irq(wm8994->irq_base + i);
}
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment