Re: [Query] thermal: Who is using "cooling-{min|max}-level}" properties ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/02/2018 10:24, Viresh Kumar wrote:
> On 09-02-18, 10:15, Daniel Lezcano wrote:
>> On 09/02/2018 07:42, Viresh Kumar wrote:
>>> On 07-02-18, 11:45, Daniel Lezcano wrote:
>>>> Yes, that is my understanding. cooling-min-level and cooling-max-level
>>>> are not used in the thermal framework code today.
>>>
>>> Right.
>>>
>>>> So if they are defined, we should check the cooling-device max and min
>>>> are in the boundaries (if they are different from no-limit).
>>>
>>> Hmm, I am not sure. We do compare those values (from maps) with the
>>> max reported by the cooling driver, so there is some boundary check
>>> happening. And I don't think it is worth comparing the min/max values
>>> from DT cooling device's nodes. Why not just leave those for the
>>> driver to return (which is already happening btw).
>>>
>>> I don't think it would be correct for the thermal core to go and look
>>> at the min/max properties of the cooling device directly, as those are
>>> more for the thermal driver's help. The thermal core should just call
>>> the get_max_state() callback and that's it.
>>>
>>> Anyway, we can take decision on the binding itself after some time but
>>> I will send some patches to get rid of this property from CPU nodes
>>> for now. It doesn't make sense to have it there (anyway it is
>>> optional), as the cpu cooling devices are kind of virtual cooling
>>> devices which rely on OPP or freq-table currently. Maybe I will begin
>>> by just updating one platform and once that is merged, update
>>> everything else as well.
> 
> So I eventually updated everything as very small number of platforms
> were actually using it.
> 
> https://lkml.kernel.org/r/cover.1518166039.git.viresh.kumar@xxxxxxxxxx

Yep, saw them.

>> What about the "cooling-cells" ? Its usage is unclear in the code and
>> I'm not sure it is really needed.
> 
> As I can see, it is actually used (sometimes a bit indirectly).

(yeah, that was the meaning of 'unclear')

> - This field is used to check if a device is a cooling device or not.
>   For example, the cpu-cooling device wouldn't be registered by the
>   cpufreq drivers unless this property is present in the CPU node. So
>   this is actually used.
>
> - This field (and its value) also comes into picture while parsing the
>   "cooling-maps". The "cooling-device" property in the map needs to
>   have "cooing-cells" + 1 fields. The first one is the cooling-device
>   phandle, followed by min/max states.

Right. The semantic is unclear. The expected cooling-cells value is
always 2 (the code ignore values greater than two and yell if it is less
than 2). And the cooling-device binding tells there are two states.

So the question is why do we need a cooling-cells as the information is
pointless here (always 2) ?

I see this field is artificially used to tell the cpufreq driver "please
register me as a cooling device". This is inconsistent from my pov.

Furthermore, the thermal-zone with the cooling device binds with the CPU
phandle, not the cooling-cells.

Putting apart the device binding changes discussion for the moment. Why
not register the cpufreq driver in all the cases and then drop
cooling-cells ? So when the opps are present, its registers in the
cpufreq->ready callback.





-- 
 <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

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux