Values are 0-7, because the cpu has 8 operating states defined.
THERMAL_NO_LIMIT on first position equals zero
THERMAL_NO_LIMIT on second position equals 7 in this case.
Setting THERMAL_NO_LIMIT THERMAL_NO_LIMIT, thus 0 7, then would imply that all operating states are to be used, in order to stay on the trip temperature defined in the corresponding map.
The lightest throttling values to use would be 0 1 which equals THERMAL_NO_LIMIT 1
But then the cpu will not run at it’s highest frequency of 1.35 GHz, already at 48 degrees celcius. This does not make sense.
In fact, now we also just have one thermal zone, because the active and hot zones are never reached, when the passive zone is setup like this.
Changing the temperature on the passive trip, would ultimately do the same thing as the patches, but now the name would be wrong, because a cpu at 65 degrees or so, is not passive anymore…
Here is an example of a good multiple maps. It is used for fan control. Only one (the one with highest temp) will be used for throttling cpu frequency.
trips {
cpu_alert0: cpu-alert0 {
temperature = <90000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
cpu_alert1: cpu-alert1 {
temperature = <100000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "passive";
};
cpu_crit: cpu-crit {
temperature = <125000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "critical";
};
cooling-maps {
map0 {
trip = <&cpu_alert0>;
cooling-device = <&fan0 THERMAL_NO_LIMIT 4>;
};
map1 {
trip = <&cpu_alert1>;
cooling-device = <&fan0 5 THERMAL_NO_LIMIT>, <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
From: https://www.kernel.org/doc/Documentation/devicetree/bindings/thermal/thermal.txt
Just add a middle map and, since we do not have a fan, remove the fan. Then it is the setup we have… Only limit cpu freq at highest thermal map.