[PATCH] arm64: dts: allwinner: Add GPU thermal trips to the SoC dtsi for A64

Dragan Simic dsimic at manjaro.org
Sun Aug 11 19:46:27 PDT 2024


Hello Icenowy,

On 2024-08-12 04:40, Icenowy Zheng wrote:
> 在 2024-08-12星期一的 04:00 +0200,Dragan Simic写道:
>> Add thermal trips for the two GPU thermal sensors found in the
>> Allwinner A64.
>> There's only one GPU OPP defined since the commit 1428f0c19f9c
>> ("arm64: dts:
>> allwinner: a64: Run GPU at 432 MHz"), so defining only the critical
>> thermal
>> trips makes sense for the A64's two GPU thermal zones.
>> 
>> Having these critical thermal trips defined ensures that no hot spots
>> develop
>> inside the SoC die that exceed the maximum junction temperature. 
>> That might
>> have been possible before, although quite unlikely, because the CPU
>> and GPU
>> portions of the SoC are packed closely inside the SoC, so the
>> overheating GPU
>> would inevitably result in the heat soaking into the CPU portion of
>> the SoC,
>> causing the CPU thermal sensor to return high readings and trigger
>> the CPU
>> critical thermal trips.  However, it's better not to rely on the heat
>> soak
>> and have the critical GPU thermal trips properly defined instead.
>> 
>> While there, remove a few spotted comments that are rather redundant,
>> because
>> it's pretty much obvious what units are used in those places.
> 
> This should be another individual patch, I think.

Perhaps, which I already thought about, but it might also be best
to simply drop the removal of those redundant comments entirely.
Let's also see what will other people say.

>> Signed-off-by: Dragan Simic <dsimic at manjaro.org>
>> ---
>>  arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 22 ++++++++++++++---
>> --
>>  1 file changed, 16 insertions(+), 6 deletions(-)
>> 
>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
>> b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
>> index e868ca5ae753..bc5d3a2e6c98 100644
>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
>> @@ -212,7 +212,6 @@ timer {
>>  
>>         thermal-zones {
>>                 cpu_thermal: cpu0-thermal {
>> -                       /* milliseconds */
> 
> The unit of a 0 isn't not so obvious I think, so I suggest to keep
> this.

Quite frankly, I think it should be obvious to anyone tackling
the thermal zones and trips.

>>                         polling-delay-passive = <0>;
>>                         polling-delay = <0>;
>>                         thermal-sensors = <&ths 0>;
>> @@ -236,40 +235,51 @@ map1 {
>>  
>>                         trips {
>>                                 cpu_alert0: cpu-alert0 {
>> -                                       /* milliCelsius */
>>                                         temperature = <75000>;
>>                                         hysteresis = <2000>;
>>                                         type = "passive";
>>                                 };
>>  
>>                                 cpu_alert1: cpu-alert1 {
>> -                                       /* milliCelsius */
>>                                         temperature = <90000>;
>>                                         hysteresis = <2000>;
>>                                         type = "hot";
>>                                 };
>>  
>>                                 cpu_crit: cpu-crit {
>> -                                       /* milliCelsius */
>>                                         temperature = <110000>;
>>                                         hysteresis = <2000>;
>>                                         type = "critical";
>>                                 };
>>                         };
>>                 };
>>  
>>                 gpu0_thermal: gpu0-thermal {
>> -                       /* milliseconds */
>>                         polling-delay-passive = <0>;
>>                         polling-delay = <0>;
>>                         thermal-sensors = <&ths 1>;
>> +
>> +                       trips {
>> +                               gpu0_crit: gpu0-crit {
>> +                                       temperature = <110000>;
>> +                                       hysteresis = <2000>;
>> +                                       type = "critical";
>> +                               };
>> +                       };
>>                 };
>>  
>>                 gpu1_thermal: gpu1-thermal {
>> -                       /* milliseconds */
>>                         polling-delay-passive = <0>;
>>                         polling-delay = <0>;
>>                         thermal-sensors = <&ths 2>;
>> +
>> +                       trips {
>> +                               gpu1_crit: gpu1-crit {
>> +                                       temperature = <110000>;
>> +                                       hysteresis = <2000>;
>> +                                       type = "critical";
>> +                               };
>> +                       };
>>                 };
>>         };
>>  



More information about the linux-arm-kernel mailing list