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

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

 



On 07/02/2018 07:59, Viresh Kumar wrote:
> Looks like I am missing the obvious and sorry for the noise in advance.
> 
> But I couldn't find any code that parses the "cooling-{min|max}-level" DT
> bindings in the kernel. Yeah, almost every ARM platform have these properties
> set for their CPU nodes in DT, but I don't see how these are getting used.
> 
> I even tried to remove them for my hikey platform and everything worked as if
> nothing has changed (which I was expecting anyway). The deal is that the
> ->get_max_state() callback of the cooling drivers are getting called to get the
> range at runtime and none of them refers to these bindings.
> 
> Removing code is always fun and I would be happy to post a series to clean
> things up if everyone agrees. Please let me know if my understanding is correct
> and if it would be fine to remove these bindings completely.

Yeah, this is a bit fuzzy. There are still cooling-{min|max}-*state*
definitions in the DTs

Documentation/devicetree/bindings/hwmon/pwm-fan.txt:
cooling-min-state = <0>;
arch/arm/boot/dts/exynos4412-odroidu3.dts:
cooling-min-state = <0>;
arch/arm/boot/dts/exynos5410-odroidxu.dts:
cooling-min-state = <0>;
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi:
cooling-min-state = <0>;
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi:
cooling-min-state = <0>;


IIUC, the cooling-device in the mapping defines the min and max states
which are the values used in the thermal zone binding.

And the cooling-[min|max]-level are the hardware limits:

cooling-min-level <= cooling-device min|max state <= cooling-max-level

For example on the hikey6220:

The DT specifies for CPU0:

	operating-points-v2 = <&cpu_opp_table>;
	cooling-min-level = <4>;
	cooling-max-level = <0>;
	#cooling-cells = <2>; /* min followed by max */

and for the cooling device for map0

	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;

So if my understanding is correct, the optional property
cooling-[min|max]-level is used to make sure the cooling device min
state and max state are in the hardware boundaries. And the thermal
framework misses to do the consistency check at init.

I'm not sure how useful are cooling-{min|max}-*state* bindings.

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