linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] Fix MT8186/92/95 topology and idle state names
@ 2023-01-26 10:35 AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 1/6] arm64: dts: mt8195: Fix CPU map for single-cluster SoC AngeloGioacchino Del Regno
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

MT8186, MT8192 and MT8195 use ARM DynamIQ, which combines big and
LITTLE cores in one single cluster! A two cluster topology is simply
wrong in this case.

While at it, after some research, I've also noticed that the names
assigned to the idle states are misleading, so I went on changing
them to reflect the actual function.

The names change commits, unlike the CPU map ones, didn't get any
Fixes tag, as naming changes aren't fixing anything that would be
meaningful for functionality (it's cosmetic, nothing else).

AngeloGioacchino Del Regno (6):
  arm64: dts: mt8195: Fix CPU map for single-cluster SoC
  arm64: dts: mt8192: Fix CPU map for single-cluster SoC
  arm64: dts: mt8186: Fix CPU map for single-cluster SoC
  arm64: dts: mt8195: Change idle states names to reflect actual
    function
  arm64: dts: mt8186: Change idle states names to reflect actual
    function
  arm64: dts: mt8192: Change idle states names to reflect actual
    function

 arch/arm64/boot/dts/mediatek/mt8186.dtsi | 30 ++++++++++----------
 arch/arm64/boot/dts/mediatek/mt8192.dtsi | 35 +++++++++++-------------
 arch/arm64/boot/dts/mediatek/mt8195.dtsi | 34 +++++++++++------------
 3 files changed, 46 insertions(+), 53 deletions(-)

-- 
2.39.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] arm64: dts: mt8195: Fix CPU map for single-cluster SoC
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
@ 2023-01-26 10:35 ` AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 2/6] arm64: dts: mt8192: " AngeloGioacchino Del Regno
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

MT8195 features the ARM DynamIQ technology and combines both four
Cortex-A78 (big) and four Cortex-A55 (LITTLE) CPUs in one cluster:
fix the CPU map to reflect that.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Fixes: 37f2582883be ("arm64: dts: Add mediatek SoC mt8195 and evaluation board")
---
 arch/arm64/boot/dts/mediatek/mt8195.dtsi | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8195.dtsi b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
index 926325935777..f04f836d9a72 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
@@ -199,22 +199,20 @@ core2 {
 				core3 {
 					cpu = <&cpu3>;
 				};
-			};
 
-			cluster1 {
-				core0 {
+				core4 {
 					cpu = <&cpu4>;
 				};
 
-				core1 {
+				core5 {
 					cpu = <&cpu5>;
 				};
 
-				core2 {
+				core6 {
 					cpu = <&cpu6>;
 				};
 
-				core3 {
+				core7 {
 					cpu = <&cpu7>;
 				};
 			};
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] arm64: dts: mt8192: Fix CPU map for single-cluster SoC
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 1/6] arm64: dts: mt8195: Fix CPU map for single-cluster SoC AngeloGioacchino Del Regno
@ 2023-01-26 10:35 ` AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 3/6] arm64: dts: mt8186: " AngeloGioacchino Del Regno
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

MT8192 features the ARM DynamIQ technology and combines both four
Cortex-A76 (big) and four Cortex-A55 (LITTLE) CPUs in one cluster:
fix the CPU map to reflect that.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Fixes: 48489980e27e ("arm64: dts: Add Mediatek SoC MT8192 and evaluation board dts and Makefile")
---
 arch/arm64/boot/dts/mediatek/mt8192.dtsi | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8192.dtsi b/arch/arm64/boot/dts/mediatek/mt8192.dtsi
index ef4fcefa2bfc..eb46cbadd310 100644
--- a/arch/arm64/boot/dts/mediatek/mt8192.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8192.dtsi
@@ -206,19 +206,16 @@ core2 {
 				core3 {
 					cpu = <&cpu3>;
 				};
-			};
-
-			cluster1 {
-				core0 {
+				core4 {
 					cpu = <&cpu4>;
 				};
-				core1 {
+				core5 {
 					cpu = <&cpu5>;
 				};
-				core2 {
+				core6 {
 					cpu = <&cpu6>;
 				};
-				core3 {
+				core7 {
 					cpu = <&cpu7>;
 				};
 			};
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] arm64: dts: mt8186: Fix CPU map for single-cluster SoC
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 1/6] arm64: dts: mt8195: Fix CPU map for single-cluster SoC AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 2/6] arm64: dts: mt8192: " AngeloGioacchino Del Regno
@ 2023-01-26 10:35 ` AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 4/6] arm64: dts: mt8195: Change idle states names to reflect actual function AngeloGioacchino Del Regno
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

MT8186 features the ARM DynamIQ technology and combines both two
Cortex-A76 (big) and six Cortex-A55 (LITTLE) CPUs in one cluster:
fix the CPU map to reflect that.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Fixes: 2e78620b1350 ("arm64: dts: Add MediaTek MT8186 dts and evaluation board and Makefile")
---
 arch/arm64/boot/dts/mediatek/mt8186.dtsi | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8186.dtsi b/arch/arm64/boot/dts/mediatek/mt8186.dtsi
index c9124bb0c960..9e8daaa044dc 100644
--- a/arch/arm64/boot/dts/mediatek/mt8186.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8186.dtsi
@@ -48,14 +48,12 @@ core4 {
 				core5 {
 					cpu = <&cpu5>;
 				};
-			};
 
-			cluster1 {
-				core0 {
+				core6 {
 					cpu = <&cpu6>;
 				};
 
-				core1 {
+				core7 {
 					cpu = <&cpu7>;
 				};
 			};
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] arm64: dts: mt8195: Change idle states names to reflect actual function
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
                   ` (2 preceding siblings ...)
  2023-01-26 10:35 ` [PATCH 3/6] arm64: dts: mt8186: " AngeloGioacchino Del Regno
@ 2023-01-26 10:35 ` AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 5/6] arm64: dts: mt8186: " AngeloGioacchino Del Regno
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

The names of the idle states are misleading being this a single cluster
SoC, a cluster-off idle state is impossible!

After some research in ATF, it emerged that the cpu-off state is in
reality putting CPUs in retention state, while the cluster-off one
is turning off the CPUs.

Summarizing renaming:
 - cpu-off -> cpu-retention
 - cluster-off -> cpu-off

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt8195.dtsi | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8195.dtsi b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
index f04f836d9a72..60ccf02b60bd 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
@@ -38,7 +38,7 @@ cpu0: cpu@0 {
 			performance-domains = <&performance 0>;
 			clock-frequency = <1701000000>;
 			capacity-dmips-mhz = <308>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -57,7 +57,7 @@ cpu1: cpu@100 {
 			performance-domains = <&performance 0>;
 			clock-frequency = <1701000000>;
 			capacity-dmips-mhz = <308>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -76,7 +76,7 @@ cpu2: cpu@200 {
 			performance-domains = <&performance 0>;
 			clock-frequency = <1701000000>;
 			capacity-dmips-mhz = <308>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -95,7 +95,7 @@ cpu3: cpu@300 {
 			performance-domains = <&performance 0>;
 			clock-frequency = <1701000000>;
 			capacity-dmips-mhz = <308>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -114,7 +114,7 @@ cpu4: cpu@400 {
 			performance-domains = <&performance 1>;
 			clock-frequency = <2171000000>;
 			capacity-dmips-mhz = <1024>;
-			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -133,7 +133,7 @@ cpu5: cpu@500 {
 			performance-domains = <&performance 1>;
 			clock-frequency = <2171000000>;
 			capacity-dmips-mhz = <1024>;
-			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -152,7 +152,7 @@ cpu6: cpu@600 {
 			performance-domains = <&performance 1>;
 			clock-frequency = <2171000000>;
 			capacity-dmips-mhz = <1024>;
-			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -171,7 +171,7 @@ cpu7: cpu@700 {
 			performance-domains = <&performance 1>;
 			clock-frequency = <2171000000>;
 			capacity-dmips-mhz = <1024>;
-			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -221,7 +221,7 @@ core7 {
 		idle-states {
 			entry-method = "psci";
 
-			cpu_off_l: cpu-off-l {
+			cpu_ret_l: cpu-retention-l {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x00010001>;
 				local-timer-stop;
@@ -230,7 +230,7 @@ cpu_off_l: cpu-off-l {
 				min-residency-us = <580>;
 			};
 
-			cpu_off_b: cpu-off-b {
+			cpu_ret_b: cpu-retention-b {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x00010001>;
 				local-timer-stop;
@@ -239,7 +239,7 @@ cpu_off_b: cpu-off-b {
 				min-residency-us = <740>;
 			};
 
-			cluster_off_l: cluster-off-l {
+			cpu_off_l: cpu-off-l {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x01010002>;
 				local-timer-stop;
@@ -248,7 +248,7 @@ cluster_off_l: cluster-off-l {
 				min-residency-us = <840>;
 			};
 
-			cluster_off_b: cluster-off-b {
+			cpu_off_b: cpu-off-b {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x01010002>;
 				local-timer-stop;
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] arm64: dts: mt8186: Change idle states names to reflect actual function
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
                   ` (3 preceding siblings ...)
  2023-01-26 10:35 ` [PATCH 4/6] arm64: dts: mt8195: Change idle states names to reflect actual function AngeloGioacchino Del Regno
@ 2023-01-26 10:35 ` AngeloGioacchino Del Regno
  2023-01-26 10:35 ` [PATCH 6/6] arm64: dts: mt8192: " AngeloGioacchino Del Regno
  2023-01-31 11:42 ` [PATCH 0/6] Fix MT8186/92/95 topology and idle state names Matthias Brugger
  6 siblings, 0 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

The names of the idle states are misleading being this a single cluster
SoC, a cluster-off idle state is impossible!

After some research in ATF, it emerged that the cpu-off state is in
reality putting CPUs in retention state, while the cluster-off one
is turning off the CPUs.

Summarizing renaming:
 - cpu-off -> cpu-retention
 - cluster-off -> cpu-off

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt8186.dtsi | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8186.dtsi b/arch/arm64/boot/dts/mediatek/mt8186.dtsi
index 9e8daaa044dc..50fdb88bdc3d 100644
--- a/arch/arm64/boot/dts/mediatek/mt8186.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8186.dtsi
@@ -66,7 +66,7 @@ cpu0: cpu@0 {
 			enable-method = "psci";
 			clock-frequency = <2000000000>;
 			capacity-dmips-mhz = <382>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -84,7 +84,7 @@ cpu1: cpu@100 {
 			enable-method = "psci";
 			clock-frequency = <2000000000>;
 			capacity-dmips-mhz = <382>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -102,7 +102,7 @@ cpu2: cpu@200 {
 			enable-method = "psci";
 			clock-frequency = <2000000000>;
 			capacity-dmips-mhz = <382>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -120,7 +120,7 @@ cpu3: cpu@300 {
 			enable-method = "psci";
 			clock-frequency = <2000000000>;
 			capacity-dmips-mhz = <382>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -138,7 +138,7 @@ cpu4: cpu@400 {
 			enable-method = "psci";
 			clock-frequency = <2000000000>;
 			capacity-dmips-mhz = <382>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -156,7 +156,7 @@ cpu5: cpu@500 {
 			enable-method = "psci";
 			clock-frequency = <2000000000>;
 			capacity-dmips-mhz = <382>;
-			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -174,7 +174,7 @@ cpu6: cpu@600 {
 			enable-method = "psci";
 			clock-frequency = <2050000000>;
 			capacity-dmips-mhz = <1024>;
-			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -192,7 +192,7 @@ cpu7: cpu@700 {
 			enable-method = "psci";
 			clock-frequency = <2050000000>;
 			capacity-dmips-mhz = <1024>;
-			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -206,7 +206,7 @@ cpu7: cpu@700 {
 		idle-states {
 			entry-method = "psci";
 
-			cpu_off_l: cpu-off-l {
+			cpu_ret_l: cpu-retention-l {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x00010001>;
 				local-timer-stop;
@@ -215,7 +215,7 @@ cpu_off_l: cpu-off-l {
 				min-residency-us = <1600>;
 			};
 
-			cpu_off_b: cpu-off-b {
+			cpu_ret_b: cpu-retention-b {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x00010001>;
 				local-timer-stop;
@@ -224,7 +224,7 @@ cpu_off_b: cpu-off-b {
 				min-residency-us = <1400>;
 			};
 
-			cluster_off_l: cluster-off-l {
+			cpu_off_l: cpu-off-l {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x01010001>;
 				local-timer-stop;
@@ -233,7 +233,7 @@ cluster_off_l: cluster-off-l {
 				min-residency-us = <2100>;
 			};
 
-			cluster_off_b: cluster-off-b {
+			cpu_off_b: cpu-off-b {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x01010001>;
 				local-timer-stop;
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] arm64: dts: mt8192: Change idle states names to reflect actual function
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
                   ` (4 preceding siblings ...)
  2023-01-26 10:35 ` [PATCH 5/6] arm64: dts: mt8186: " AngeloGioacchino Del Regno
@ 2023-01-26 10:35 ` AngeloGioacchino Del Regno
  2023-01-31 11:42 ` [PATCH 0/6] Fix MT8186/92/95 topology and idle state names Matthias Brugger
  6 siblings, 0 replies; 8+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-26 10:35 UTC (permalink / raw)
  To: matthias.bgg
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel, AngeloGioacchino Del Regno

The names of the idle states are misleading being this a single cluster
SoC, a cluster-sleep idle state is impossible!

After some research in ATF, it emerged that the cpu-sleep state is in
reality putting CPUs in retention state, while the cluster-sleep one
is turning off the CPUs.

Summarizing renaming:
 - cpu-sleep -> cpu-retention
 - cluster-sleep -> cpu-off

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt8192.dtsi | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8192.dtsi b/arch/arm64/boot/dts/mediatek/mt8192.dtsi
index eb46cbadd310..87b91c8feaf9 100644
--- a/arch/arm64/boot/dts/mediatek/mt8192.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8192.dtsi
@@ -62,7 +62,7 @@ cpu0: cpu@0 {
 			reg = <0x000>;
 			enable-method = "psci";
 			clock-frequency = <1701000000>;
-			cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -79,7 +79,7 @@ cpu1: cpu@100 {
 			reg = <0x100>;
 			enable-method = "psci";
 			clock-frequency = <1701000000>;
-			cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -96,7 +96,7 @@ cpu2: cpu@200 {
 			reg = <0x200>;
 			enable-method = "psci";
 			clock-frequency = <1701000000>;
-			cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -113,7 +113,7 @@ cpu3: cpu@300 {
 			reg = <0x300>;
 			enable-method = "psci";
 			clock-frequency = <1701000000>;
-			cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>;
+			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
 			i-cache-size = <32768>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <128>;
@@ -130,7 +130,7 @@ cpu4: cpu@400 {
 			reg = <0x400>;
 			enable-method = "psci";
 			clock-frequency = <2171000000>;
-			cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -147,7 +147,7 @@ cpu5: cpu@500 {
 			reg = <0x500>;
 			enable-method = "psci";
 			clock-frequency = <2171000000>;
-			cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -164,7 +164,7 @@ cpu6: cpu@600 {
 			reg = <0x600>;
 			enable-method = "psci";
 			clock-frequency = <2171000000>;
-			cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -181,7 +181,7 @@ cpu7: cpu@700 {
 			reg = <0x700>;
 			enable-method = "psci";
 			clock-frequency = <2171000000>;
-			cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>;
+			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
 			i-cache-size = <65536>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -250,7 +250,7 @@ l3_0: l3-cache {
 
 		idle-states {
 			entry-method = "psci";
-			cpu_sleep_l: cpu-sleep-l {
+			cpu_ret_l: cpu-retention-l {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x00010001>;
 				local-timer-stop;
@@ -258,7 +258,7 @@ cpu_sleep_l: cpu-sleep-l {
 				exit-latency-us = <140>;
 				min-residency-us = <780>;
 			};
-			cpu_sleep_b: cpu-sleep-b {
+			cpu_ret_b: cpu-retention-b {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x00010001>;
 				local-timer-stop;
@@ -266,7 +266,7 @@ cpu_sleep_b: cpu-sleep-b {
 				exit-latency-us = <145>;
 				min-residency-us = <720>;
 			};
-			cluster_sleep_l: cluster-sleep-l {
+			cpu_off_l: cpu-off-l {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x01010002>;
 				local-timer-stop;
@@ -274,7 +274,7 @@ cluster_sleep_l: cluster-sleep-l {
 				exit-latency-us = <155>;
 				min-residency-us = <860>;
 			};
-			cluster_sleep_b: cluster-sleep-b {
+			cpu_off_b: cpu-off-b {
 				compatible = "arm,idle-state";
 				arm,psci-suspend-param = <0x01010002>;
 				local-timer-stop;
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] Fix MT8186/92/95 topology and idle state names
  2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
                   ` (5 preceding siblings ...)
  2023-01-26 10:35 ` [PATCH 6/6] arm64: dts: mt8192: " AngeloGioacchino Del Regno
@ 2023-01-31 11:42 ` Matthias Brugger
  6 siblings, 0 replies; 8+ messages in thread
From: Matthias Brugger @ 2023-01-31 11:42 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno
  Cc: robh+dt, krzysztof.kozlowski+dt, seiya.wang, tinghan.shen,
	allen-kh.cheng, devicetree, linux-arm-kernel, linux-mediatek,
	linux-kernel



On 26/01/2023 11:35, AngeloGioacchino Del Regno wrote:
> MT8186, MT8192 and MT8195 use ARM DynamIQ, which combines big and
> LITTLE cores in one single cluster! A two cluster topology is simply
> wrong in this case.
> 
> While at it, after some research, I've also noticed that the names
> assigned to the idle states are misleading, so I went on changing
> them to reflect the actual function.
> 
> The names change commits, unlike the CPU map ones, didn't get any
> Fixes tag, as naming changes aren't fixing anything that would be
> meaningful for functionality (it's cosmetic, nothing else).
> 
> AngeloGioacchino Del Regno (6):
>    arm64: dts: mt8195: Fix CPU map for single-cluster SoC
>    arm64: dts: mt8192: Fix CPU map for single-cluster SoC
>    arm64: dts: mt8186: Fix CPU map for single-cluster SoC
>    arm64: dts: mt8195: Change idle states names to reflect actual
>      function
>    arm64: dts: mt8186: Change idle states names to reflect actual
>      function
>    arm64: dts: mt8192: Change idle states names to reflect actual
>      function
> 

Whole series applied, thanks!
Matthias

>   arch/arm64/boot/dts/mediatek/mt8186.dtsi | 30 ++++++++++----------
>   arch/arm64/boot/dts/mediatek/mt8192.dtsi | 35 +++++++++++-------------
>   arch/arm64/boot/dts/mediatek/mt8195.dtsi | 34 +++++++++++------------
>   3 files changed, 46 insertions(+), 53 deletions(-)
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-01-31 11:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-26 10:35 [PATCH 0/6] Fix MT8186/92/95 topology and idle state names AngeloGioacchino Del Regno
2023-01-26 10:35 ` [PATCH 1/6] arm64: dts: mt8195: Fix CPU map for single-cluster SoC AngeloGioacchino Del Regno
2023-01-26 10:35 ` [PATCH 2/6] arm64: dts: mt8192: " AngeloGioacchino Del Regno
2023-01-26 10:35 ` [PATCH 3/6] arm64: dts: mt8186: " AngeloGioacchino Del Regno
2023-01-26 10:35 ` [PATCH 4/6] arm64: dts: mt8195: Change idle states names to reflect actual function AngeloGioacchino Del Regno
2023-01-26 10:35 ` [PATCH 5/6] arm64: dts: mt8186: " AngeloGioacchino Del Regno
2023-01-26 10:35 ` [PATCH 6/6] arm64: dts: mt8192: " AngeloGioacchino Del Regno
2023-01-31 11:42 ` [PATCH 0/6] Fix MT8186/92/95 topology and idle state names Matthias Brugger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).