Re: [PATCH 2/4] thermal/of: Return -ENODEV instead of -EINVAL if registration fails

From: Michael Walle
Date: Mon Aug 08 2022 - 15:05:54 EST


Am 2022-08-08 20:35, schrieb Guenter Roeck:
On 8/8/22 11:09, Daniel Lezcano wrote:
The previous version of the OF code was returning -ENODEV if no
thermal zones description was found or if the lookup of the sensor in
the thermal zones was not found.

The backend drivers are expecting this return value as an information
about skipping the sensor initialization and considered as normal.

Fix the return value by replacing -EINVAL by -ENODEV

Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
---
drivers/thermal/thermal_of.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index 368eb58e97cf..4210c18ef7b2 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -329,7 +329,7 @@ static struct device_node *of_thermal_zone_find(struct device_node *sensor, int
np = of_find_node_by_name(NULL, "thermal-zones");
if (!np) {
pr_err("Unable to find thermal zones description\n");

I really don't like that error message: People will see it (and complain)
whenever a sensor registers and there is no thermal zone, even though that
is perfectly normal (see description above).

I can second that, and there actually two error messages:

[ 6.156983] thermal_sys: Unable to find thermal zones description
[ 6.163125] thermal_sys: Failed to find thermal zone for hwmon id=0

On the sl28 board with the qoriq_thermal driver:
[ 1.917940] thermal_sys: Failed to find thermal zone for tmu id=2
[ 1.929231] thermal_sys: Failed to find thermal zone for tmu id=3
[ 1.940519] thermal_sys: Failed to find thermal zone for tmu id=4
[ 1.951814] thermal_sys: Failed to find thermal zone for tmu id=5
[ 1.963109] thermal_sys: Failed to find thermal zone for tmu id=6
[ 1.974399] thermal_sys: Failed to find thermal zone for tmu id=7
[ 1.985690] thermal_sys: Failed to find thermal zone for tmu id=8
[ 1.996980] thermal_sys: Failed to find thermal zone for tmu id=9
[ 2.008274] thermal_sys: Failed to find thermal zone for tmu id=10
[ 2.019656] thermal_sys: Failed to find thermal zone for tmu id=11
[ 2.031037] thermal_sys: Failed to find thermal zone for tmu id=12
[ 2.048942] thermal_sys: Failed to find thermal zone for tmu id=13
[ 2.060320] thermal_sys: Failed to find thermal zone for tmu id=14
[ 2.071700] thermal_sys: Failed to find thermal zone for tmu id=15

Btw. the driver seems to always register 16 sensors regardless how
many the actual hardware has (or rather: are described in the DT).

-michael