> On Apr 22, 2019, at 09:40, Guenter Roeck <linux@xxxxxxxxxxxx> wrote: > > On a system which has CONFIG_THERMAL enabled but does not really utilize > it, the call to thermal_cdev_update() will result in the fan being stopped > immediately since max6650_set_cur_state() is called with state=0. > > I see that this function called from pwm_fan.c. It is not called from > gpio-fan.c or npcm750-pwm-fan.c. Other than from pwm-fan.c, it is only > called from thermal governors, and not from any other thermal drivers > registering a thermal cooling device. This leads me to believe that > the calls from here and from pwm_fan.c may be wrong. > > Are you sure that this call needed ? If so, can you explain ? > What happens in your system if you remove this call ? Yes, you are correct. It is a carry over from pwm-fan.c and so probably wrong there too. I have tested without the thermal_cdev_update call in probe() and basically, if the cooling device is not part of a TZ, then set_cur_state is never called. If part of a TZ, it is called by the governor (step_wise in my case) as required and all works as expected. Cheers!