Re: [PATCH] arm64: dts: mt8183: adjust cpuidle target residency
From: Matthias Brugger
Date: Mon Apr 13 2020 - 12:57:21 EST
On 2/25/20 9:07 AM, Ikjoon Jang wrote:
> Split a cluster level cpuidle state into two, so mt8183 variant
> boards can adjust parameters for each cluster, and reduce cluster0's
> default target residency to 1000us as power measurements showed that
> its minimum residency is slightly less than cluster1's 1300us.
>
> Signed-off-by: Ikjoon Jang <ikjn@xxxxxxxxxxxx>
Applied to v5.7-next/dts64
Thanks!
> ---
> arch/arm64/boot/dts/mediatek/mt8183.dtsi | 26 ++++++++++++++++--------
> 1 file changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
> index f1381e77918b..5c7dd262eaf3 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
> @@ -74,7 +74,7 @@ cpu0: cpu@0 {
> reg = <0x000>;
> enable-method = "psci";
> capacity-dmips-mhz = <741>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
> };
>
> cpu1: cpu@1 {
> @@ -83,7 +83,7 @@ cpu1: cpu@1 {
> reg = <0x001>;
> enable-method = "psci";
> capacity-dmips-mhz = <741>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
> };
>
> cpu2: cpu@2 {
> @@ -92,7 +92,7 @@ cpu2: cpu@2 {
> reg = <0x002>;
> enable-method = "psci";
> capacity-dmips-mhz = <741>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
> };
>
> cpu3: cpu@3 {
> @@ -101,7 +101,7 @@ cpu3: cpu@3 {
> reg = <0x003>;
> enable-method = "psci";
> capacity-dmips-mhz = <741>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
> };
>
> cpu4: cpu@100 {
> @@ -110,7 +110,7 @@ cpu4: cpu@100 {
> reg = <0x100>;
> enable-method = "psci";
> capacity-dmips-mhz = <1024>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
> };
>
> cpu5: cpu@101 {
> @@ -119,7 +119,7 @@ cpu5: cpu@101 {
> reg = <0x101>;
> enable-method = "psci";
> capacity-dmips-mhz = <1024>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
> };
>
> cpu6: cpu@102 {
> @@ -128,7 +128,7 @@ cpu6: cpu@102 {
> reg = <0x102>;
> enable-method = "psci";
> capacity-dmips-mhz = <1024>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
> };
>
> cpu7: cpu@103 {
> @@ -137,7 +137,7 @@ cpu7: cpu@103 {
> reg = <0x103>;
> enable-method = "psci";
> capacity-dmips-mhz = <1024>;
> - cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
> };
>
> idle-states {
> @@ -152,7 +152,15 @@ CPU_SLEEP: cpu-sleep {
> min-residency-us = <800>;
> };
>
> - CLUSTER_SLEEP: cluster-sleep {
> + CLUSTER_SLEEP0: cluster-sleep@0 {
> + compatible = "arm,idle-state";
> + local-timer-stop;
> + arm,psci-suspend-param = <0x01010001>;
> + entry-latency-us = <250>;
> + exit-latency-us = <400>;
> + min-residency-us = <1000>;
> + };
> + CLUSTER_SLEEP1: cluster-sleep@1 {
> compatible = "arm,idle-state";
> local-timer-stop;
> arm,psci-suspend-param = <0x01010001>;
>