Re: [PATCH v2 7/7] spmi: apple: interrupt controller functionality
Sasha Finkelstein <[email protected]> Sun, 2 Aug 2026 15:11:27 +0200
| Newsgroups | dev.linux.lists.asahi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Aug 2, 2026, at 15:07, Janne Grunau <[email protected]> wrote: [...] >>=20 >> val =3D readl(spmi->regs + SPMI_IRQ_ACK_BASE + SPMI_IRQ_USER_SIZE); >> if (val & BIT(SPMI_IRQ_FIFO_RX)) { >> @@ -239,6 +357,23 @@ static irqreturn_t apple_spmi_irq_handler(int = irq, void *dev_id) >> handled =3D true; >> } >>=20 >> + for (offset =3D 0; offset < SPMI_IRQ_USER_SIZE; offset +=3D = sizeof(val)) { >> + val =3D readq(spmi->regs + SPMI_IRQ_ACK_BASE + offset); >> + /** >> + * because of other masters in the bus, we're going to get a = multitude of >> + * interrupts we're not interested in. irq_resolve_mapping isn't = very >> + * optimized for the nonexistent path, so instead we mask with (a = locally >> + * cached version of) the IRQ mask >> + */ >=20 > I don't understand the comment. Interrupt bits in SPMI_IRQ_ACK_BASE.. > are set although the SPMI controller has masked them? Yes, they just do not cause an interrupt to be raised.