Message ID | 20220809085629.509116-2-daniel.lezcano@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | [v2,1/4] thermal/of: Fix error code in of_thermal_zone_find() | expand |
On 8/9/22 01:56, 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 and remove the > error message as this missing is not considered as an error. > > Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> > Tested-by: Michael Walle <michael@walle.cc> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > v2: > - Change the error message to a debug message > - Only show an error if the error is not -ENODEV > --- > drivers/thermal/thermal_of.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c > index 368eb58e97cf..3effc729be4b 100644 > --- a/drivers/thermal/thermal_of.c > +++ b/drivers/thermal/thermal_of.c > @@ -328,8 +328,8 @@ 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"); > - return ERR_PTR(-EINVAL); > + pr_debug("No thermal zones description\n"); > + return ERR_PTR(-ENODEV); > } > > /* > @@ -368,7 +368,7 @@ static struct device_node *of_thermal_zone_find(struct device_node *sensor, int > } > } > } > - tz = ERR_PTR(-EINVAL); > + tz = ERR_PTR(-ENODEV); > out: > of_node_put(np); > return tz; > @@ -642,7 +642,8 @@ struct thermal_zone_device *thermal_of_zone_register(struct device_node *sensor, > > np = of_thermal_zone_find(sensor, id); > if (IS_ERR(np)) { > - pr_err("Failed to find thermal zone for %pOFn id=%d\n", sensor, id); > + if (PTR_ERR(np) != -ENODEV) > + pr_err("Failed to find thermal zone for %pOFn id=%d\n", sensor, id); > return ERR_CAST(np); > } >
diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c index 368eb58e97cf..3effc729be4b 100644 --- a/drivers/thermal/thermal_of.c +++ b/drivers/thermal/thermal_of.c @@ -328,8 +328,8 @@ 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"); - return ERR_PTR(-EINVAL); + pr_debug("No thermal zones description\n"); + return ERR_PTR(-ENODEV); } /* @@ -368,7 +368,7 @@ static struct device_node *of_thermal_zone_find(struct device_node *sensor, int } } } - tz = ERR_PTR(-EINVAL); + tz = ERR_PTR(-ENODEV); out: of_node_put(np); return tz; @@ -642,7 +642,8 @@ struct thermal_zone_device *thermal_of_zone_register(struct device_node *sensor, np = of_thermal_zone_find(sensor, id); if (IS_ERR(np)) { - pr_err("Failed to find thermal zone for %pOFn id=%d\n", sensor, id); + if (PTR_ERR(np) != -ENODEV) + pr_err("Failed to find thermal zone for %pOFn id=%d\n", sensor, id); return ERR_CAST(np); }