[RFC PATCH v1 0/1] mailbox: arm_mhuv3: Keep combined IRQ enabled during system suspend
From: Finley Xiao
Date: Tue Sep 29 2026 - 23:42:22 EST
Hi Sudeep, Cristian,
This is an RFC to ask about keeping the MHUv3 combined IRQs enabled
across system suspend, so that SCMI clock/power-domain operations
issued from the noirq phase keep working.
SCMI clock and power-domain operations go through the mailbox
transport, and during system suspend they are still needed in the noirq
phase. genpd powers off a device's parent domain from
genpd_suspend_noirq() (e.g. turning off a video power domain when
suspending the display controller), which issues
scmi_clock_config_set() / scmi_power_state_set() and waits for the
firmware reply via the mailbox RX IRQ. Because dpm_suspend_noirq()
calls suspend_device_irqs() before running the suspend_noirq callbacks,
the mailbox IRQ is already masked at that point and the transfer times
out:
arm-scmi firmware:scmi: timed out in resp(caller:
scmi_clock_config_set+0x90/0xdc)
We hit this on one of our platforms and worked around it downstream by
adding IRQF_NO_SUSPEND to our mailbox driver. arm_mhuv3.c has the same
pattern: both the PBX and MBX combined interrupts are requested as
threaded IRQs with only IRQF_ONESHOT and no hardirq handler, so an
MHUv3 instance used as the SCMI mailbox transport (arm,scmi-mailbox)
would time out the same way.
IRQ threads are not frozen during system suspend, so with
IRQF_NO_SUSPEND the threaded combined-IRQ handlers still run in the
noirq phase. For SCMI clk/pd traffic the MBX combined IRQ must stay
enabled; the PBX combined IRQ, used for txdone by IRQ when not in
polling mode, needs the same treatment.
The patch applies IRQF_NO_SUSPEND to both registrations, but we would
like your opinion on:
1. whether you are open to this at all, or whether SCMI users on MHUv3
should instead rely on another transport (e.g. SMC) for traffic
needed in the noirq phase;
2. whether it should be applied to both the PBX and MBX combined IRQs
unconditionally, or only in specific configurations.
This is not purely hypothetical: several in-tree DTs already route SCMI
over a mailbox transport without IRQF_NO_SUSPEND on the mailbox IRQ,
e.g. Juno and Morello use the MHU doorbell and the Zena CSS DTS uses
MHUv3. The patch is sent as RFC for discussion only.
Thanks,
Finley
Finley Xiao (1):
mailbox: arm_mhuv3: Keep the combined IRQ enabled during system
suspend
drivers/mailbox/arm_mhuv3.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--
2.43.0