* [PATCH] arm64: dts: qcom: x1e80100: add system power domain SS3 state
@ 2025-10-12 22:54 Val Packett
2025-10-13 8:15 ` Konrad Dybcio
0 siblings, 1 reply; 3+ messages in thread
From: Val Packett @ 2025-10-12 22:54 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Val Packett, linux-arm-msm, devicetree, linux-kernel
Add the same PSCI state as seen on other Oryon-based SoCs like SM8750
and Glymur, seems to work fine on Hamoa as well.
Signed-off-by: Val Packett <val@packett.cool>
---
Tested on a Dell Latitude 7455:
/sys/kernel/debug/pm_genpd/power-domain-system/idle_states:
State Time Spent(ms) Usage Rejected Above Below
S0 69476 23006 195 21562 0
Seems to mostly be used in system suspend, though I've occasionally seen
the counter increment a little bit during runtime as well.
---
arch/arm64/boot/dts/qcom/x1e80100.dtsi | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index 3cf2568def3f..fab8104147bd 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -303,6 +303,14 @@ cluster_cl5: cluster-sleep-1 {
exit-latency-us = <4000>;
min-residency-us = <7000>;
};
+
+ domain_ss3: domain-sleep-0 {
+ compatible = "domain-idle-state";
+ arm,psci-suspend-param = <0x0200c354>;
+ entry-latency-us = <2800>;
+ exit-latency-us = <4400>;
+ min-residency-us = <10150>;
+ };
};
};
@@ -449,7 +457,7 @@ cluster_pd2: power-domain-cpu-cluster2 {
system_pd: power-domain-system {
#power-domain-cells = <0>;
- /* TODO: system-wide idle states */
+ domain-idle-states = <&domain_ss3>;
};
};
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: qcom: x1e80100: add system power domain SS3 state
2025-10-12 22:54 [PATCH] arm64: dts: qcom: x1e80100: add system power domain SS3 state Val Packett
@ 2025-10-13 8:15 ` Konrad Dybcio
2025-10-13 10:06 ` Konrad Dybcio
0 siblings, 1 reply; 3+ messages in thread
From: Konrad Dybcio @ 2025-10-13 8:15 UTC (permalink / raw)
To: Val Packett, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Mukesh Ojha
Cc: linux-arm-msm, devicetree, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1829 bytes --]
On 10/13/25 12:54 AM, Val Packett wrote:
> Add the same PSCI state as seen on other Oryon-based SoCs like SM8750
> and Glymur, seems to work fine on Hamoa as well.
>
> Signed-off-by: Val Packett <val@packett.cool>
> ---
> Tested on a Dell Latitude 7455:
>
> /sys/kernel/debug/pm_genpd/power-domain-system/idle_states:
> State Time Spent(ms) Usage Rejected Above Below
> S0 69476 23006 195 21562 0
>
> Seems to mostly be used in system suspend, though I've occasionally seen
> the counter increment a little bit during runtime as well.
> ---
FWIW the exact same state is hardcoded to be present if you use
PSCI_SYSTEM_SUSPEND (which is mapped to `deep` in /sys/power/mem_sleep)
> arch/arm64/boot/dts/qcom/x1e80100.dtsi | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> index 3cf2568def3f..fab8104147bd 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> @@ -303,6 +303,14 @@ cluster_cl5: cluster-sleep-1 {
> exit-latency-us = <4000>;
> min-residency-us = <7000>;
> };
> +
> + domain_ss3: domain-sleep-0 {
> + compatible = "domain-idle-state";
> + arm,psci-suspend-param = <0x0200c354>;
> + entry-latency-us = <2800>;
> + exit-latency-us = <4400>;
> + min-residency-us = <10150>;
You seem to have copied these time numbers from 8750 as well, but
it's not a great idea, since they're tuned for getting a good perf/pwr
profile for a mobile phone
I attached an old patch I had laying around that described all three
states exposed in the windows DSDT (although I'm not sure if that's
exactly beneficial without additional tuning too)
+Mukesh please take a look
Konrad
[-- Attachment #2: 0001-arm64-dts-qcom-x1e80100-Add-system-sleep-states.patch --]
[-- Type: text/x-patch, Size: 2506 bytes --]
From df74e0e5f669b136a08f758651771423b8be9c61 Mon Sep 17 00:00:00 2001
From: Konrad Dybcio <konrad.dybcio@linaro.org>
Date: Mon, 15 Jul 2024 16:16:41 +0200
Subject: [PATCH] arm64: dts: qcom: x1e80100: Add system sleep states
Add the missing system-wide sleep states based on the information
found in the DSDT.
DRIPS is a non-obvious name, but it's the state that the device enters
for Modern Standby on Windows (see [1], [2]).
The entry latency numbers (which were not provided anywhere) could use
some tuning, for starters I set them equal to exit latency, which is
not an entirely unreasonable estimate..
[1] https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/prepare-hardware-for-modern-standby
[2] https://dl.dell.com/manuals/all-products/esuprt_solutions_int/esuprt_solutions_int_solutions_resources/client-mobile-solution-resources_white-papers45_en-us.pdf
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
arch/arm64/boot/dts/qcom/x1e80100.dtsi | 31 +++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index e80a454fb8df..a35ab4f7cdc9 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -302,6 +302,33 @@ CLUSTER_CL5: cluster-sleep-1 {
exit-latency-us = <2500>;
min-residency-us = <7000>;
};
+
+ SYSTEM_SLEEP0: system-sleep-0 {
+ compatible = "domain-idle-state";
+ idle-state-name = "system-sleep0";
+ arm,psci-suspend-param = <0x02000154>;
+ entry-latency-us = <500>;
+ exit-latency-us = <500>;
+ min-residency-us = <7500>;
+ };
+
+ SYSTEM_SLEEP1: system-sleep-1 {
+ compatible = "domain-idle-state";
+ idle-state-name = "system-sleep1";
+ arm,psci-suspend-param = <0x02000254>;
+ entry-latency-us = <3000>;
+ exit-latency-us = <3000>;
+ min-residency-us = <8000>;
+ };
+
+ SYSTEM_DRIPS: system-sleep-2 {
+ compatible = "domain-idle-state";
+ idle-state-name = "drips";
+ arm,psci-suspend-param = <0x0200c354>;
+ entry-latency-us = <5000>;
+ exit-latency-us = <5000>;
+ min-residency-us = <9000>;
+ };
};
};
@@ -435,7 +462,9 @@ CLUSTER_PD2: power-domain-cpu-cluster2 {
SYSTEM_PD: power-domain-system {
#power-domain-cells = <0>;
- /* TODO: system-wide idle states */
+ domain-idle-states = <&SYSTEM_SLEEP0>,
+ <&SYSTEM_SLEEP1>,
+ <&SYSTEM_DRIPS>;
};
};
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: qcom: x1e80100: add system power domain SS3 state
2025-10-13 8:15 ` Konrad Dybcio
@ 2025-10-13 10:06 ` Konrad Dybcio
0 siblings, 0 replies; 3+ messages in thread
From: Konrad Dybcio @ 2025-10-13 10:06 UTC (permalink / raw)
To: Val Packett, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Mukesh Ojha, Maulik Shah
Cc: linux-arm-msm, devicetree, linux-kernel
On 10/13/25 10:15 AM, Konrad Dybcio wrote:
> On 10/13/25 12:54 AM, Val Packett wrote:
>> Add the same PSCI state as seen on other Oryon-based SoCs like SM8750
>> and Glymur, seems to work fine on Hamoa as well.
>>
>> Signed-off-by: Val Packett <val@packett.cool>
>> ---
>> Tested on a Dell Latitude 7455:
>>
>> /sys/kernel/debug/pm_genpd/power-domain-system/idle_states:
>> State Time Spent(ms) Usage Rejected Above Below
>> S0 69476 23006 195 21562 0
>>
>> Seems to mostly be used in system suspend, though I've occasionally seen
>> the counter increment a little bit during runtime as well.
>> ---
>
> FWIW the exact same state is hardcoded to be present if you use
> PSCI_SYSTEM_SUSPEND (which is mapped to `deep` in /sys/power/mem_sleep)
>
>> arch/arm64/boot/dts/qcom/x1e80100.dtsi | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> index 3cf2568def3f..fab8104147bd 100644
>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> @@ -303,6 +303,14 @@ cluster_cl5: cluster-sleep-1 {
>> exit-latency-us = <4000>;
>> min-residency-us = <7000>;
>> };
>> +
>> + domain_ss3: domain-sleep-0 {
>> + compatible = "domain-idle-state";
>> + arm,psci-suspend-param = <0x0200c354>;
>> + entry-latency-us = <2800>;
>> + exit-latency-us = <4400>;
>> + min-residency-us = <10150>;
>
> You seem to have copied these time numbers from 8750 as well, but
> it's not a great idea, since they're tuned for getting a good perf/pwr
> profile for a mobile phone
>
> I attached an old patch I had laying around that described all three
> states exposed in the windows DSDT (although I'm not sure if that's
> exactly beneficial without additional tuning too)
>
> +Mukesh please take a look
Well, I of course meant +Maulik, sorry..
Konrad
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-10-13 10:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-12 22:54 [PATCH] arm64: dts: qcom: x1e80100: add system power domain SS3 state Val Packett
2025-10-13 8:15 ` Konrad Dybcio
2025-10-13 10:06 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox