]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: imx8mp: Enable gpu passive throttling
authorMartin Kepplinger-Novaković <martink@posteo.de>
Thu, 8 May 2025 10:18:02 +0000 (10:18 +0000)
committerShawn Guo <shawnguo@kernel.org>
Wed, 11 Jun 2025 09:16:10 +0000 (17:16 +0800)
Hook up the gpu as a passive cooling device to the thermal zones' alert
trip point just like the cpu.

The gpu here consists of 3D GPU, 2D GPU and NPU.

One way to test would be to set one "alert" trip point low enough
and watch the cooling device state increase:

echo 10000 > /sys/class/thermal/thermal_zone0/trip_point_0_temp
watch cat /sys/class/thermal/cooling_device*/cur_state

And of course set the trip point back to its original value and watch
the cooling device states jump to 0 again.

Signed-off-by: Martin Kepplinger-Novaković <martink@posteo.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mp.dtsi

index 948b88cf5e9dff38a9dd28eb4903c951529cb443..66cb1ef49aca62df04905b4d1ad5f285467d801a 100644 (file)
                                                <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
                                                <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
                                                <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&gpu3d THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&gpu2d THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&npu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
                };
                                                <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
                                                <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
                                                <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&gpu3d THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&gpu2d THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&npu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
                };
                                 <&clk IMX8MP_CLK_GPU_ROOT>,
                                 <&clk IMX8MP_CLK_GPU_AHB>;
                        clock-names = "core", "shader", "bus", "reg";
+                       #cooling-cells = <2>;
                        assigned-clocks = <&clk IMX8MP_CLK_GPU3D_CORE>,
                                          <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>;
                        assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
                                 <&clk IMX8MP_CLK_GPU_ROOT>,
                                 <&clk IMX8MP_CLK_GPU_AHB>;
                        clock-names = "core", "bus", "reg";
+                       #cooling-cells = <2>;
                        assigned-clocks = <&clk IMX8MP_CLK_GPU2D_CORE>;
                        assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>;
                        assigned-clock-rates = <1000000000>;
                                 <&clk IMX8MP_CLK_ML_AXI>,
                                 <&clk IMX8MP_CLK_ML_AHB>;
                        clock-names = "core", "shader", "bus", "reg";
+                       #cooling-cells = <2>;
                        power-domains = <&pgc_mlmix>;
                };