On 24/02/2020 18:39, Ondřej Jirman wrote: > On Mon, Feb 24, 2020 at 06:23:28PM +0100, megous hlavni wrote: >> Hi, >> >> On Mon, Feb 24, 2020 at 06:06:20PM +0100, Daniel Lezcano wrote: >>> On 24/02/2020 17:54, Ondrej Jirman wrote: >>>> This enables passive cooling by down-regulating CPU voltage >>>> clocks = <&ccu CLK_C1CPUX>; >>>> @@ -1188,12 +1188,60 @@ cpu0_thermal: cpu0-thermal { >>>> polling-delay-passive = <0>; >>>> polling-delay = <0>; >>>> thermal-sensors = <&ths 0>; >>>> + >>>> + trips { >>>> + ': cpu-hot { >>>> + temperature = <80000>; >>>> + hysteresis = <2000>; >>>> + type = "passive"; >>>> + }; >>>> + >>>> + cpu0_very_hot: cpu-very-hot { >>>> + temperature = <100000>; >>>> + hysteresis = <0>; >>>> + type = "critical"; >>>> + }; >>>> + }; >>>> + >>>> + cooling-maps { >>>> + cpu-hot-limit { >>>> + trip = <&cpu0_hot>; >>>> + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>>> + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>>> + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>>> + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >>>> + }; >>>> + }; >>>> }; >>>> >>>> cpu1_thermal: cpu1-thermal { >>>> polling-delay-passive = <0>; >>> >>> No polling to mitigate? >> >> Polling to mitigate what? >> >> The driver is using interrupts whenever new reading is available, and >> notifies tz of the change. I don't have a reason to believe any new >> values are available from thermal sensor outside of the interrupt >> period. > > To be more clear, new temperatures are available from the thermal sensor driver > at the rate of 4 per second, which should be enough to do quick adjustments to > the thermal zone/cooling device even for quick temperature rises. > > https://elixir.bootlin.com/linux/v5.6-rc3/source/drivers/thermal/sun8i_thermal.c#L442 > > There's no slow/fast period depending on whether the cooling is active. > It's always fast and no polling of the thermal sensor is needed. Thanks for the clarification. All sensors have their specificity. Does the sensor allow to create a threshold temperature where an interrupt fires when crossing the boundary? That would be interesting for performance and energy saving to disable the interrupts until 'cpu0_hot' is reached, no? -- <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