Hi Samuel, On Tue, 23 Aug 2022 at 05:16, Samuel Holland <samuel@xxxxxxxxxxxx> wrote: > > On 8/21/22 12:30 PM, Clément Péron wrote: > > Add a simple cooling map for the GPU. > > It would be good to document where the trip point temperatures came from. If I remember correctly, I got those when getting the dtb from my Beelink GS1 when it was running vendor Android with the oldest Allwinner kernel. But now that you ask I double check with the "new" vendor kernel source: https://github.com/Allwinner-Homlet/H6-BSP4.9-linux/blob/master/arch/arm64/boot/dts/sunxi/sun50iw6p1.dtsi#L2034-L2053 And It's different from what I got in the past. The throttling starts when the GPU is already very hot (95, 100 and 105°C) and seems to only disable the highest frequency (756, 624 and 576MHz). Which let the GPU running at 0.91V @ 540MHz. Which is far to be the lowest possible consumption for the GPU (0.81V @ 336MHz would be better in the hottest situation) I'm not an expert but either I could just try to copy/paste the same behavior or try to have a more smooth cooling map (70, 85, 100°C). What do you think? Thanks, Clement > > > Signed-off-by: Clément Péron <peron.clem@xxxxxxxxx> > > Acked-by: Samuel Holland <samuel@xxxxxxxxxxxx> > > > --- > > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 22 ++++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > index 5a28303d3d4c..943ae5374dd6 100644 > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > > @@ -186,6 +186,7 @@ gpu: gpu@1800000 { > > clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; > > clock-names = "core", "bus"; > > resets = <&ccu RST_BUS_GPU>; > > + #cooling-cells = <2>; > > status = "disabled"; > > }; > > > > @@ -1075,6 +1076,27 @@ gpu-thermal { > > polling-delay-passive = <0>; > > polling-delay = <0>; > > thermal-sensors = <&ths 1>; > > + > > + trips { > > + gpu_alert: gpu-alert { > > + temperature = <85000>; > > + hysteresis = <2000>; > > + type = "passive"; > > + }; > > + > > + gpu-crit { > > + temperature = <100000>; > > + hysteresis = <0>; > > + type = "critical"; > > + }; > > + }; > > + > > + cooling-maps { > > + map0 { > > + trip = <&gpu_alert>; > > + cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > > + }; > > + }; > > }; > > }; > > }; > > >