From b45e2bc0c1cce17c29a3a804902821d2ee2c4a67 Mon Sep 17 00:00:00 2001 From: Huan Biao Date: Fri, 12 Jul 2019 17:27:01 +0800 Subject: [PATCH] thermal: add s912 thermal support [1/2] PD#SWPL-11152 Problem: s912 thermal init fail Solution: fix thermal dts fix thermal cpuid get issue Verify: verified on s912 q201 Change-Id: Id2802621c5c8d711bfcbc5684252ac0dd519900a Signed-off-by: Huan Biao --- arch/arm/boot/dts/amlogic/gxm_q200_2g.dts | 7 ++----- arch/arm/boot/dts/amlogic/gxm_q200_2g_buildroot.dts | 7 ++----- arch/arm/boot/dts/amlogic/gxm_q201_1g.dts | 7 ++----- arch/arm/boot/dts/amlogic/gxm_q201_2g.dts | 7 ++----- arch/arm/boot/dts/amlogic/gxm_skt.dts | 9 +++------ arch/arm64/boot/dts/amlogic/gxm_q200_2g.dts | 7 ++----- arch/arm64/boot/dts/amlogic/gxm_q200_2g_buildroot.dts | 7 ++----- arch/arm64/boot/dts/amlogic/gxm_q201_1g.dts | 7 ++----- arch/arm64/boot/dts/amlogic/gxm_q201_2g.dts | 7 ++----- arch/arm64/boot/dts/amlogic/gxm_skt.dts | 7 ++----- drivers/amlogic/thermal/aml_thermal_hw.c | 4 ++-- 11 files changed, 23 insertions(+), 53 deletions(-) diff --git a/arch/arm/boot/dts/amlogic/gxm_q200_2g.dts b/arch/arm/boot/dts/amlogic/gxm_q200_2g.dts index 4996a08474a0..8b4bb51cd8f4 100644 --- a/arch/arm/boot/dts/amlogic/gxm_q200_2g.dts +++ b/arch/arm/boot/dts/amlogic/gxm_q200_2g.dts @@ -519,7 +519,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -542,9 +542,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -603,7 +600,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm/boot/dts/amlogic/gxm_q200_2g_buildroot.dts b/arch/arm/boot/dts/amlogic/gxm_q200_2g_buildroot.dts index f3e39f184360..b457dbec3b09 100644 --- a/arch/arm/boot/dts/amlogic/gxm_q200_2g_buildroot.dts +++ b/arch/arm/boot/dts/amlogic/gxm_q200_2g_buildroot.dts @@ -523,7 +523,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -546,9 +546,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -607,7 +604,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm/boot/dts/amlogic/gxm_q201_1g.dts b/arch/arm/boot/dts/amlogic/gxm_q201_1g.dts index a358dfb6b860..2a4e972894ec 100644 --- a/arch/arm/boot/dts/amlogic/gxm_q201_1g.dts +++ b/arch/arm/boot/dts/amlogic/gxm_q201_1g.dts @@ -523,7 +523,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -546,9 +546,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -607,7 +604,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm/boot/dts/amlogic/gxm_q201_2g.dts b/arch/arm/boot/dts/amlogic/gxm_q201_2g.dts index 37cb00448728..4c582aeda7f1 100644 --- a/arch/arm/boot/dts/amlogic/gxm_q201_2g.dts +++ b/arch/arm/boot/dts/amlogic/gxm_q201_2g.dts @@ -525,7 +525,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -548,9 +548,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -609,7 +606,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm/boot/dts/amlogic/gxm_skt.dts b/arch/arm/boot/dts/amlogic/gxm_skt.dts index 638542ffa736..c09da4b4f416 100644 --- a/arch/arm/boot/dts/amlogic/gxm_skt.dts +++ b/arch/arm/boot/dts/amlogic/gxm_skt.dts @@ -472,7 +472,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -495,10 +495,7 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; - gpucore_cool0:gpucore_cool0 { +gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; }; @@ -556,7 +553,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm64/boot/dts/amlogic/gxm_q200_2g.dts b/arch/arm64/boot/dts/amlogic/gxm_q200_2g.dts index 2516cd862b5d..1fe4844b79f6 100644 --- a/arch/arm64/boot/dts/amlogic/gxm_q200_2g.dts +++ b/arch/arm64/boot/dts/amlogic/gxm_q200_2g.dts @@ -519,7 +519,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -542,9 +542,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -603,7 +600,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm64/boot/dts/amlogic/gxm_q200_2g_buildroot.dts b/arch/arm64/boot/dts/amlogic/gxm_q200_2g_buildroot.dts index 21dd87f047b8..4f1917b81a8e 100644 --- a/arch/arm64/boot/dts/amlogic/gxm_q200_2g_buildroot.dts +++ b/arch/arm64/boot/dts/amlogic/gxm_q200_2g_buildroot.dts @@ -523,7 +523,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -546,9 +546,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -607,7 +604,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm64/boot/dts/amlogic/gxm_q201_1g.dts b/arch/arm64/boot/dts/amlogic/gxm_q201_1g.dts index 3558b99c08a7..5be920f608d0 100644 --- a/arch/arm64/boot/dts/amlogic/gxm_q201_1g.dts +++ b/arch/arm64/boot/dts/amlogic/gxm_q201_1g.dts @@ -523,7 +523,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -546,9 +546,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -607,7 +604,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm64/boot/dts/amlogic/gxm_q201_2g.dts b/arch/arm64/boot/dts/amlogic/gxm_q201_2g.dts index 348e521c8490..c73cb91f68bc 100644 --- a/arch/arm64/boot/dts/amlogic/gxm_q201_2g.dts +++ b/arch/arm64/boot/dts/amlogic/gxm_q201_2g.dts @@ -525,7 +525,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -548,9 +548,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -609,7 +606,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/arch/arm64/boot/dts/amlogic/gxm_skt.dts b/arch/arm64/boot/dts/amlogic/gxm_skt.dts index f6ab6fe9ceb8..b2ba7b9cb253 100644 --- a/arch/arm64/boot/dts/amlogic/gxm_skt.dts +++ b/arch/arm64/boot/dts/amlogic/gxm_skt.dts @@ -472,7 +472,7 @@ min_state = <400>; dyn_coeff = <437>; cluster_id = <0>; - node_name = "gpufreq_cool0"; + node_name = "t82x"; device_type = "gpufreq"; }; gpucore_cool { @@ -495,9 +495,6 @@ cpucore_cool1:cpucore_cool1 { #cooling-cells = <2>; /* min followed by max */ }; - gpufreq_cool0:gpufreq_cool0 { - #cooling-cells = <2>; /* min followed by max */ - }; gpucore_cool0:gpucore_cool0 { #cooling-cells = <2>; /* min followed by max */ }; @@ -556,7 +553,7 @@ }; gpufreq_cooling_map { trip = <&control>; - cooling-device = <&gpufreq_cool0 0 4>; + cooling-device = <&t82x_gpu 0 4>; contribution = <1024>; }; gpucore_cooling_map { diff --git a/drivers/amlogic/thermal/aml_thermal_hw.c b/drivers/amlogic/thermal/aml_thermal_hw.c index 04fdada7eaa7..f9d9b6ba0f04 100644 --- a/drivers/amlogic/thermal/aml_thermal_hw.c +++ b/drivers/amlogic/thermal/aml_thermal_hw.c @@ -162,7 +162,7 @@ int aml_thermal_min_update(struct thermal_cooling_device *cdev) case COOL_DEV_TYPE_CPU_FREQ: for_each_possible_cpu(cpu) { - if (mc_capable()) + if (topology_physical_package_id(0) != -1) c_id = topology_physical_package_id(cpu); else c_id = 0; /* force cluster 0 if no MC */ @@ -332,7 +332,7 @@ static int aml_thermal_probe(struct platform_device *pdev) } for_each_possible_cpu(cpu) { - if (mc_capable()) + if (topology_physical_package_id(0) != -1) c_id = topology_physical_package_id(cpu); else c_id = CLUSTER_BIG; /* Always cluster 0 if no mc */