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

From: Peng Fan
Date: Thu Jul 03 2025 - 23:11:51 EST


Move information could be found in patch 2 commit log, hope it is clear

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(interrupt is always
enabled), 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 firmware 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

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
Changes in v2:
- Simplify code follow Dan's comments for patch 1
- Rewrite commit log for patch 2 to make it clear
- Rebased to next-20250703
- Link to v1: https://lore.kernel.org/r/20250620-scmi-pm-v1-0-c2f02cae5122@xxxxxxx

---
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 | 33 ++++++++++++++++++++++++++
drivers/firmware/arm_scmi/scmi_power_control.c | 24 +++++++++++++++----
2 files changed, 52 insertions(+), 5 deletions(-)
---
base-commit: 38e1f239ba67d7a34d6b5e300fd61cb6fdffc831
change-id: 20250620-scmi-pm-8f6170769230

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