Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -231,12 +231,6 @@ static irqreturn_t wm8994_irq_thread(int irq, void *data)
		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 */
	for (i = 0; i < ARRAY_SIZE(status); i++) {
		if (status[i])
@@ -244,6 +238,12 @@ static irqreturn_t wm8994_irq_thread(int irq, void *data)
					 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;
}