Aw: Re: Re: [PATCH] Fix mt7622.dtsi thermal cpu

Daniel Lezcano daniel.lezcano at linaro.org
Fri Jun 25 04:47:56 PDT 2021


On 25/06/2021 13:03, Frank Wunderlich wrote:
> Hi
> 
>> Gesendet: Freitag, 25. Juni 2021 um 11:57 Uhr
>> Von: "Daniel Lezcano" <daniel.lezcano at linaro.org>
> 
>> You should not add the fan in the mt7622.dtsi itself but in the board
>> specific file where there is a fan output on it. mt7622.dtsi is supposed
>> to be the SoC itself AFAICT.
>>
>> For instance:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi#n39
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi#n164
> 
>>> @@ -170,14 +177,12 @@
>>>  			cooling-maps {
>>>  				map0 {
>>>  					trip = <&cpu_passive>;
>>> -					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>>> -							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>>> +					cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>>>  				};
>>
>> fan == active trip point
>>
>> This is referring to the passive trip point. So it should point to the
>> CPU as it is now. Note the order of mitigation is inverted regarding the
>> proposal description.
> 
> but we need to disable the passive trip as cpu-trotteling starts there...the higher temperature trips are currently not reached

Sorry, can you rephrase it ? I'm not getting the point.


> summary
> 
> moving fan and cpu_thermal-override to bananapi-r64.dts
> 
> passive-trip: cooling-device = <&cpu0/1 0 0> as in erics Patch
> active trip: cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> the other 2 unchanged
> 
> but i suggest changing the temperature points in mt7622 dtsi as this is SoC specific
> 
> so basicly:
> 
> --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
> @@ -143,13 +143,13 @@ cpu_thermal: cpu-thermal {
> 
>                         trips {
>                                 cpu_passive: cpu-passive {
> -                                       temperature = <47000>;
> +                                       temperature = <70000>;

May be increase the passive temp to 75°C.

>                                         hysteresis = <2000>;
>                                         type = "passive";
>                                 };
> 
>                                 cpu_active: cpu-active {
> -                                       temperature = <67000>;
> +                                       temperature = <80000>;
>                                         hysteresis = <2000>;
>                                         type = "active";
>                                 };

Move the active trip 'cpu_active' to mt7622-bananapi-bpi-r64.dts. and
set it to 70°C in the mt7622-bananapi-bpi-r64.dts, so the fan will act
before the cpu throttling.

The behavior should be the following: The temperature reaches 70°C, the
fan will start, if the temperature continues to increase, it will
increase the speed. If the temperature reaches 75°C, the fan is still
rotating at full speed but the cpu begins to be throttled.

AFAIU, it is a Cortex-A53 running @1.35GH, so except the board is in a
black metal box under the sun, I don't see how we can reach this thermal
limits.

> @@ -170,8 +170,8 @@ cpu-crit {
>                         cooling-maps {
>                                 map0 {
>                                         trip = <&cpu_passive>;
> -                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> -                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +                                       cooling-device = <&cpu0 0 0>,
> +                                                        <&cpu1 0 0>;

You should keep it untouched.

>                                 };
> 
>                                 map1 {
> @@ -428,6 +428,7 @@ uart3: serial at 11005000 {
>         pwm: pwm at 11006000 {
>                 compatible = "mediatek,mt7622-pwm";
>                 reg = <0 0x11006000 0 0x1000>;
> +               #pwm-cells = <3>;
>                 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
>                 clocks = <&topckgen CLK_TOP_PWM_SEL>,
>                          <&pericfg CLK_PERI_PWM_PD>,
> 
> --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
> +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
> @@ -37,6 +37,13 @@ cpu at 1 {
>                 };
>         };
> 
> +       fan0: pwm-fan {
> +               compatible = "pwm-fan";
> +               #cooling-cells = <2>;
> +               pwms = <&pwm 2 10000 0>;
> +               cooling-levels = <0 102 170 230>;
> +       };
> +
>         gpio-keys {
>                 compatible = "gpio-keys";
> 
> @@ -582,6 +589,29 @@ &u3phy {
>         status = "okay";
>  };
> 
> +&cpu_thermal {
> +       cooling-maps {
> +               map1 {
> +                       trip = <&cpu_active>;
> +                       cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +               };
> +       };
> +};
> +
>  &uart0 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&uart0_pins>;
> 


-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog



More information about the Linux-mediatek mailing list