Messages in this thread | | | Date | Tue, 12 Jul 2022 14:30:54 +0200 | Subject | Re: [PATCH v2 3/3] thermal/core: Fix thermal trip cross point | From | Daniel Lezcano <> |
| |
On 12/07/2022 13:29, Lukasz Luba wrote:
[ ... ]
>> @@ -511,8 +528,13 @@ void thermal_zone_device_update(struct >> thermal_zone_device *tz, >> tz->notify_event = event; >> - for (count = 0; count < tz->trips; count++) >> - handle_thermal_trip(tz, count); >> + if (tz->last_temperature <= tz->temperature) { >> + for (count = 0; count < tz->trips; count++) >> + handle_thermal_trip(tz, count); >> + } else { >> + for (count = tz->prev_trip; count >= 0; count--) >> + handle_thermal_trip(tz, count); >> + } > > In general the code look good. I have one question, though: > Is it always true that these trip points coming from the DT > and parsed in thermal_of_build_thermal_zone() populated by > for_each_child_of_node(child, gchild) { > thermal_of_populate_trip(gchild, &tz->trips[i++]); > > are always defined in right order in DT?
Hmm, that is a good question. Even if the convention is to put the trip point in the ascending order, I don't find any documentation telling it is mandatory. Given that I don't feel particularly comfortable to assume that is the case.
Perhaps, it would make more sense to build a map of indexes telling the order in the trip points and work with it instead.
-- <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
| |