public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Val Packett <val@packett.cool>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] arm64: dts: qcom: x1e80100: add system power domain SS3 state
Date: Mon, 13 Oct 2025 10:15:08 +0200	[thread overview]
Message-ID: <0c8735f9-eac0-449c-aa95-b82cec0e6cb2@oss.qualcomm.com> (raw)
In-Reply-To: <20251012225950.15475-1-val@packett.cool>

[-- 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


  reply	other threads:[~2025-10-13  8:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2025-10-13 10:06   ` Konrad Dybcio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0c8735f9-eac0-449c-aa95-b82cec0e6cb2@oss.qualcomm.com \
    --to=konrad.dybcio@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mukesh.ojha@oss.qualcomm.com \
    --cc=robh@kernel.org \
    --cc=val@packett.cool \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox