On 4/7/20 7:49 PM, Andrzej Pietrasiewicz wrote: > thermal/of calls its own ->set_mode() method, so monitor thermal zone > afterwards. This is needed for the DISABLED->ENABLED transition. > > Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxxxx> > --- > drivers/thermal/of-thermal.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c > index b7621dfab17c..cf2c43ebcb78 100644 > --- a/drivers/thermal/of-thermal.c > +++ b/drivers/thermal/of-thermal.c > @@ -523,8 +523,11 @@ thermal_zone_of_sensor_register(struct device *dev, int sensor_id, void *data, > if (sensor_specs.np == sensor_np && id == sensor_id) { > tzd = thermal_zone_of_add_sensor(child, sensor_np, > data, ops); > - if (!IS_ERR(tzd)) > + if (!IS_ERR(tzd)) { > tzd->ops->set_mode(tzd, THERMAL_DEVICE_ENABLED); > + thermal_zone_device_update(tzd, > + THERMAL_EVENT_UNSPECIFIED); > + } > > of_node_put(sensor_specs.np); > of_node_put(child); > This patch is bogus/redundant, please look at ->set_mode implementation for thermal/of drivers: static int of_thermal_set_mode(struct thermal_zone_device *tz, enum thermal_device_mode mode) { struct __thermal_zone *data = tz->devdata; mutex_lock(&tz->lock); if (mode == THERMAL_DEVICE_ENABLED) { tz->polling_delay = data->polling_delay; tz->passive_delay = data->passive_delay; } else { tz->polling_delay = 0; tz->passive_delay = 0; } mutex_unlock(&tz->lock); data->mode = mode; thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED); return 0; } Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics