Re: [PATCH v5 00/33] New thermal OF code
From: Daniel Lezcano
Date: Tue Aug 09 2022 - 11:37:55 EST
On 09/08/2022 16:32, Guenter Roeck wrote:
On 8/9/22 01:53, Daniel Lezcano wrote:
Hi Guenter,
On 08/08/2022 12:26, Guenter Roeck wrote:
[ ... ]
But I guess even if that is fixed, the driver will not probe due to the
missing trip points? Are they now mandatory? Does it mean we'd need to
update our device trees? But that will then mean older devices trees
don't work anymore.
It would also mean that all hwmon drivers registering a thermal zone
sensor
would fail to register unless such a thermal zone actually exists.
Probably missing something but if the thermal zone is not described,
the hwmon driver won't initialize. And except if I'm wrong, that was
already the case before these changes, no?
In the hwmon source (you point to it below):
if (IS_ERR(tzd)) {
if (PTR_ERR(tzd) != -ENODEV)
return PTR_ERR(tzd);
dev_info(dev, "temp%d_input not attached to any thermal
zone\n",
index + 1);
devm_kfree(dev, tdata);
return 0;
}
That contradicts "if the thermal zone is not described, the hwmon driver
won't initialize".
Now I must be missing something, since you mention that yourself below,
and your new patch
series fixes the problem, at least AFAICS. Confused.
Sorry for not being clear. Let me try to explain it differently.
The function hwmon_thermal_add_sensor() is calling:
Without "[PATCH v5 00/33] New thermal OF code":
-----------------------------------------------
devm_thermal_zone_of_sensor_register(dev, index, ...);
If there is no thermal zone description or the 'dev' does not belong to
any thermal zone then -ENODEV is returned -> OK and the hwmon thermal
zone is _not_ created
With "[PATCH v5 00/33] New thermal OF code":
--------------------------------------------
devm_thermal_of_zone_register(dev, index, ...);
If there is no thermal zone description or the 'dev' does not belong to
any thermal zone then *-EINVAL* is returned -> NOK, error message, and
hwmon thermal zone is _not_ created
With "[PATCH v5 00/33] New thermal OF code" + fixes:
----------------------------------------------------
devm_thermal_of_zone_register(dev, index, ...);
If there is no thermal zone description or the 'dev' does not belong to
any thermal zone then *-ENODEV* is returned -> OK and the hwmon thermal
zone is _not_ created
Quoting your initial message:
"It would also mean that all hwmon drivers registering a thermal zone
sensor would fail to register unless such a thermal zone actually
exists. This would make the whole concept of having the hwmon core
register thermal zone sensors impossible [...]"
The thermal zone must be described if the OF registering function
variant is used. Except I'm wrong that was already the case before the
changes.
Otherwise, nothing prevents a hwmon to register itself with the core
code, that will create the thermal zone.
--
<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