On rk3288 the CPU and GPU temperatures are correlated. Limit the GPU
frequency on veyron mickey to 400 MHz for CPU temperatures >= 65°C
and to 300 MHz for CPU temperatures >= 85°C.

This matches the configuration of the downstream Chrome OS 3.14 kernel,
the 'official' kernel for mickey.

Signed-off-by: Matthias Kaehlcke <m...@chromium.org>
---
Changes in v2:
- added 'cpu_warm_limit_gpu' to throttle GPU for T.cpu >= 65°C
- removed comment saying that GPU isn't throttled beyond 400 MHz
  based on CPU temperature
- updated commit message

Note: this patch depends on "ARM: dts: rockchip: Add #cooling-cells
entry for rk3288 GPU" (https://lore.kernel.org/patchwork/patch/1075005/)
---
 arch/arm/boot/dts/rk3288-veyron-mickey.dts | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/rk3288-veyron-mickey.dts 
b/arch/arm/boot/dts/rk3288-veyron-mickey.dts
index 52f6abc22291..34797abe3403 100644
--- a/arch/arm/boot/dts/rk3288-veyron-mickey.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-mickey.dts
@@ -75,9 +75,7 @@
        cooling-maps {
                /*
                 * After 1st level, throttle the CPU down to as low as 1.4 GHz
-                * and don't let the GPU go faster than 400 MHz.  Note that we
-                * won't throttle the GPU lower than 400 MHz due to CPU
-                * heat--we'll let the GPU do the rest itself.
+                * and don't let the GPU go faster than 400 MHz.
                 */
                cpu_warm_limit_cpu {
                        trip = <&cpu_alert_warm>;
@@ -86,6 +84,10 @@
                                         <&cpu2 THERMAL_NO_LIMIT 4>,
                                         <&cpu3 THERMAL_NO_LIMIT 4>;
                };
+               cpu_warm_limit_gpu {
+                       trip = <&cpu_alert_warm>;
+                       cooling-device = <&gpu 1 1>;
+               };
 
                /*
                 * Add some discrete steps to help throttling system deal
@@ -125,6 +127,12 @@
                                         <&cpu2 8 THERMAL_NO_LIMIT>,
                                         <&cpu3 8 THERMAL_NO_LIMIT>;
                };
+
+               /* At very hot, don't let GPU go over 300 MHz */
+               cpu_very_hot_limit_gpu {
+                       trip = <&cpu_alert_very_hot>;
+                       cooling-device = <&gpu 2 2>;
+               };
        };
 };
 
-- 
2.21.0.1020.gf2820cf01a-goog

Reply via email to