Certain firmwares expose exactly what PSCI_SYSTEM_SUSPEND does through CPU_SUSPEND instead. Inform Linux about that. Please see the commit messages for a more detailed explanation. This is effectively a more educated follow-up to [1]. The ultimate goal is to stop making Linux think that certain states only concern cores/clusters, and consequently setting pm_set_suspend/resume_via_firmware(), so that client drivers (such as NVMe, see related discussion over at [2]) can make informed decisions about assuming the power state of the device they govern. If this series gets green light, I'll push a follow-up one that wires up said sleep state on Qualcomm SoCs across the board. [1] https://lore.kernel.org/linux-arm-kernel/20231227-topic-psci_fw_sus-v1-0-6910add70bf3@xxxxxxxxxx/ [2] https://lore.kernel.org/linux-nvme/20241024-topic-nvmequirk-v1-1-51249999d409@xxxxxxxxxxxxxxxx/ Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx> --- Konrad Dybcio (3): dt-bindings: arm,psci: Allow S2RAM power_state parameter description firmware/psci: Set pm_set_resume/suspend_via_firmware() for SYSTEM_SUSPEND firmware/psci: Allow specifying an S2RAM state through CPU_SUSPEND Documentation/devicetree/bindings/arm/psci.yaml | 6 ++++ drivers/firmware/psci/psci.c | 44 ++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 4 deletions(-) --- base-commit: a39230ecf6b3057f5897bc4744a790070cfbe7a8 change-id: 20241028-topic-cpu_suspend_s2ram-28fc095d0aa4 Best regards, -- Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>