The function thermal_cdev_upadte is called from the throttling functions in the governors not from the cooling device itself. The cooling device is set to its maximum state and then updated. Even if I don't get the purpose of probing the pwm-fan to its maximum cooling state, we can replace the thermal_cdev_update() call to the internal set_cur_state() function directly. Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> --- drivers/hwmon/pwm-fan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/hwmon/pwm-fan.c b/drivers/hwmon/pwm-fan.c index 30b7b3ea8836..a654ecdf21ab 100644 --- a/drivers/hwmon/pwm-fan.c +++ b/drivers/hwmon/pwm-fan.c @@ -372,7 +372,6 @@ static int pwm_fan_probe(struct platform_device *pdev) if (ret) return ret; - ctx->pwm_fan_state = ctx->pwm_fan_max_state; if (IS_ENABLED(CONFIG_THERMAL)) { cdev = devm_thermal_of_cooling_device_register(dev, dev->of_node, "pwm-fan", ctx, &pwm_fan_cooling_ops); @@ -384,7 +383,7 @@ static int pwm_fan_probe(struct platform_device *pdev) return ret; } ctx->cdev = cdev; - thermal_cdev_update(cdev); + pwm_fan_set_cur_state(cdev, ctx->pwm_fan_max_state); } return 0; -- 2.17.1