On 23/05/2020 02:35, Anson Huang wrote: > Hi, Daniel > > >> Subject: Re: [PATCH] thermal: imx8mm: Add get_trend ops >> >> On 13/05/2020 04:58, Anson Huang wrote: >>> Add get_trend ops for i.MX8MM thermal to apply fast cooling mechanism, >>> when temperature exceeds passive trip point, the highest cooling >>> action will be applied, and when temperature drops to lower than the >>> margin below passive trip point, the lowest cooling action will be >>> applied. >> >> You are not describing what is the goal of this change. > > The goal of this change is to make sure whenever temperature exceeds passive > trip point, > the highest cooling action will be applied immediately, e.g., if there are > many cpufreq OPP, > the default cooling will be step by step, it will take some more rounds to > make cpufreq drop > to lowest OPP, while on i.MX, we expect the cpufreq drop to lowest OPP > immediately.
Whatever the slope of the temperature increase? >> IIUC, the resulting change will be an on/off action. The thermal zone is >> mitigated with the highest cooling effect, so the lowest OPP, then the >> temperature trend is stable until it goes below the trip - margin where the >> mitigation is stopped. > > Yes, your understanding is correctly, once the temperature exceeds passive > trip point, > the highest cooling action will be applied immediately and then it will be > stable there > until temperature drop to trip - margin, then the cooling action will be > cancelled, the > margin is to avoid the back and forth near the passive trip point. > >> >> Except, I'm missing something, setting a trip point with a 10000 hysteresis >> and >> a cooling map min/max set to the highest opp will result on the same. > > Yes setting cooling map min/max cooling state to highest OPP will make the > highest > cooling action applied immediately, and to have the function of cooling > action being > cancelled when temperature drops to trip - margin, I have to define another > trip point, > say passive trip point is 85000, and cooling map min/max set to highest OPP > in passive > trip point then add another trip point named "active" with 75000, and without > any > cooling map in it, right? May be I misunderstood but only the change as below is needed. No need to add a trip point, especially an 'active' trip which is a for an active cooling device like a fan. diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi index cc7152ecedd9..bea263bd06b4 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi @@ -231,10 +231,10 @@ cooling-maps { map0 { trip = <&cpu_alert0>; cooling-device = - <&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_0 2 2>, + <&A53_1 2 2>, + <&A53_2 2 2>, + <&A53_3 2 2> }; }; }; > If yes, then I think I can try to make the changes in DT instead of thermal > driver. -- <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