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.