Re: [PATCH] thermal: imx8mm: Add get_trend ops
From: Daniel Lezcano <hidden>
Date: 2020-05-23 12:33:47
Also in:
linux-pm, lkml
On 23/05/2020 02:35, Anson Huang wrote:
Hi, Danielquoted
Subject: Re: [PATCH] thermal: imx8mm: Add get_trend ops On 13/05/2020 04:58, Anson Huang wrote:quoted
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?
quoted
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.quoted
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.dtsib/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 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel