2023-12-21 21:48:39

by Chia-I Wu

[permalink] [raw]
Subject: [PATCH] arm64: dts: qcom: sc7280: revert back to PSCI PC mode

This effectively reverts 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add
power-domains for cpuidle states") for sc7280-herobrine.

Fixes: 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add power-domains for cpuidle states")
Signed-off-by: Chia-I Wu <[email protected]>
---
.../boot/dts/qcom/sc7280-firmware-tfa.dtsi | 107 ++++++++++++++++++
.../arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 1 +
arch/arm64/boot/dts/qcom/sc7280.dtsi | 4 +-
3 files changed, 110 insertions(+), 2 deletions(-)
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-firmware-tfa.dtsi

diff --git a/arch/arm64/boot/dts/qcom/sc7280-firmware-tfa.dtsi b/arch/arm64/boot/dts/qcom/sc7280-firmware-tfa.dtsi
new file mode 100644
index 0000000000000..b3fc03da244d6
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sc7280-firmware-tfa.dtsi
@@ -0,0 +1,107 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/*
+ * Devices that use SC7280 with TrustedFirmware-A
+ * need PSCI PC mode instead of the OSI mode provided
+ * by Qualcomm firmware.
+ */
+
+&CPU0 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&LITTLE_CPU_SLEEP_0
+ &LITTLE_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU1 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&LITTLE_CPU_SLEEP_0
+ &LITTLE_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU2 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&LITTLE_CPU_SLEEP_0
+ &LITTLE_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU3 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&LITTLE_CPU_SLEEP_0
+ &LITTLE_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU4 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&BIG_CPU_SLEEP_0
+ &BIG_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU5 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&BIG_CPU_SLEEP_0
+ &BIG_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU6 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&BIG_CPU_SLEEP_0
+ &BIG_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+&CPU7 {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+
+ cpu-idle-states = <&BIG_CPU_SLEEP_0
+ &BIG_CPU_SLEEP_1
+ &CLUSTER_SLEEP_0>;
+};
+
+/delete-node/ &domain_idle_states;
+
+&idle_states {
+ CLUSTER_SLEEP_0: cluster-sleep-0 {
+ compatible = "arm,idle-state";
+ idle-state-name = "cluster-power-down";
+ arm,psci-suspend-param = <0x40003444>;
+ entry-latency-us = <3263>;
+ exit-latency-us = <6562>;
+ min-residency-us = <9926>;
+ local-timer-stop;
+ };
+};
+
+/delete-node/ &CPU_PD0;
+/delete-node/ &CPU_PD1;
+/delete-node/ &CPU_PD2;
+/delete-node/ &CPU_PD3;
+/delete-node/ &CPU_PD4;
+/delete-node/ &CPU_PD5;
+/delete-node/ &CPU_PD6;
+/delete-node/ &CPU_PD7;
+/delete-node/ &CLUSTER_PD;
+
+&apps_rsc {
+ /delete-property/ power-domains;
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
index 9ea6636125ad9..09b2d370bf7e0 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
@@ -19,6 +19,7 @@

#include "sc7280-qcard.dtsi"
#include "sc7280-chrome-common.dtsi"
+#include "sc7280-firmware-tfa.dtsi"

/ {
chosen {
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 66f1eb83cca7e..354bf2868eba6 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -383,7 +383,7 @@ core7 {
};
};

- idle-states {
+ idle_states: idle-states {
entry-method = "psci";

LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
@@ -427,7 +427,7 @@ BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
};
};

- domain-idle-states {
+ domain_idle_states: domain-idle-states {
CLUSTER_SLEEP_0: cluster-sleep-0 {
compatible = "domain-idle-state";
idle-state-name = "cluster-power-down";
--
2.43.0.195.gebba966016-goog



2023-12-21 21:55:49

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc7280: revert back to PSCI PC mode

On 21.12.2023 22:48, Chia-I Wu wrote:
> This effectively reverts 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add
> power-domains for cpuidle states") for sc7280-herobrine.
>
> Fixes: 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add power-domains for cpuidle states")
> Signed-off-by: Chia-I Wu <[email protected]>
> ---
0 explanations?

Konrad

2023-12-21 22:07:49

by Chia-I Wu

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc7280: revert back to PSCI PC mode

On Thu, Dec 21, 2023 at 1:55 PM Konrad Dybcio <[email protected]> wrote:
>
> On 21.12.2023 22:48, Chia-I Wu wrote:
> > This effectively reverts 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add
> > power-domains for cpuidle states") for sc7280-herobrine.
> >
> > Fixes: 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add power-domains for cpuidle states")
> > Signed-off-by: Chia-I Wu <[email protected]>
> > ---
> 0 explanations?
Ouch. It's in the comment

+ * Devices that use SC7280 with TrustedFirmware-A
+ * need PSCI PC mode instead of the OSI mode provided
+ * by Qualcomm firmware.

and is similar to the case with sc7180-trogdor. I can send v2 if necessary.

>
> Konrad

2023-12-21 23:26:40

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc7280: revert back to PSCI PC mode

On Fri, 22 Dec 2023 at 00:07, Chia-I Wu <[email protected]> wrote:
>
> On Thu, Dec 21, 2023 at 1:55 PM Konrad Dybcio <[email protected]> wrote:
> >
> > On 21.12.2023 22:48, Chia-I Wu wrote:
> > > This effectively reverts 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add
> > > power-domains for cpuidle states") for sc7280-herobrine.
> > >
> > > Fixes: 7925ca85e9561 ("arm64: dts: qcom: sc7280: Add power-domains for cpuidle states")
> > > Signed-off-by: Chia-I Wu <[email protected]>
> > > ---
> > 0 explanations?
> Ouch. It's in the comment
>
> + * Devices that use SC7280 with TrustedFirmware-A
> + * need PSCI PC mode instead of the OSI mode provided
> + * by Qualcomm firmware.
>
> and is similar to the case with sc7180-trogdor. I can send v2 if necessary.

Absolutely necessary. And so does the accurate commit subject. The
existing one means that the whole SC7280 PSCI mode is reversed, while
instead you do it only for the TF-A platforms.


--
With best wishes
Dmitry