[PATCH 0/2] firmware: arm_scmi: add pm ops for scmi_power_control

Peng Fan (OSS)
2025-06-20T03:41:27Z

When testing on i.MX95, two consecutive suspend message send to the Linux
agent, Linux will suspend(by the 1st suspend message) and wake up(by the
2nd suspend message).

The ARM SCMI spec does not allow for filtering of which messages an agent
wants to get on the system power protocol. To i.MX95, as we use mailbox
to receive message, and the mailbox supports wake up, so linux will also
get a repeated suspend message. This will cause Linux to wake (and should
then go back into suspend).

This patchset is to make the 2nd suspend message could suspend linux
again.

So why SCMI fireware couldn't block the 2nd suspend message from being
sent to Linux agent? Per checking with our SCMI firmware owner:
The SM(System Manager) does not know exactly when Linux is in suspend.
There are no handshakes that clearly tell the SM this. The flow should
be, if in suspend and you send a suspend (or graceful reset/power off)
it will wake and then do the request action

Move information could be found in patch 2 commit log

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Peng Fan (2):
firmware: arm_scmi: bus: Add pm ops
firmware: arm_scmi: power_control: Set SCMI_SYSPOWER_IDLE in pm resume

drivers/firmware/arm_scmi/bus.c | 45 ++++++++++++++++++++++++++
drivers/firmware/arm_scmi/scmi_power_control.c | 24 +++++++++++---
2 files changed, 64 insertions(+), 5 deletions(-)
---
base-commit: 4325743c7e209ae7845293679a4de94b969f2bef
change-id: 20250620-scmi-pm-8f6170769230

Best regards,
--
Peng Fan <peng.fan@nxp.com>