[PATCH 2/2] arm64: dts: qcom: sdm630: Fix the CPU retention idle state parameter
From: Fabricio Akio via B4 Relay
Date: Sun Oct 11 2026 - 22:18:48 EST
From: Fabricio Akio <fabricioakio@xxxxxxxxx>
The CPU retention states set bit 30 of their PSCI power_state, which
marks a state that loses context. Retention keeps it, and the vendor
kernel requests it as 0x00000002.
With bit 30 set, no entry into these states succeeds on a Motorola Moto
X4 (SDM630). With it clear they are entered about 50 times per second
across the CPUs, and the failed idle entries across all states drop
from about 30 to about 9 per second.
Fixes: b190fb010664 ("arm64: dts: qcom: sdm630: Add sdm630 dts file")
Signed-off-by: Fabricio Akio <fabricioakio@xxxxxxxxx>
---
arch/arm64/boot/dts/qcom/sdm630.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index 222ec5886818..a58bad0fb638 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -192,7 +192,7 @@ idle-states {
pwr_cpu_sleep_0: cpu-sleep-0-0 {
compatible = "arm,idle-state";
idle-state-name = "pwr-retention";
- arm,psci-suspend-param = <0x40000002>;
+ arm,psci-suspend-param = <0x00000002>;
entry-latency-us = <338>;
exit-latency-us = <423>;
min-residency-us = <200>;
@@ -211,7 +211,7 @@ pwr_cpu_sleep_1: cpu-sleep-0-1 {
perf_cpu_sleep_0: cpu-sleep-1-0 {
compatible = "arm,idle-state";
idle-state-name = "perf-retention";
- arm,psci-suspend-param = <0x40000002>;
+ arm,psci-suspend-param = <0x00000002>;
entry-latency-us = <154>;
exit-latency-us = <87>;
min-residency-us = <200>;
--
2.56.0