On 4/23/19 5:45 AM, Jean-Francois Dagenais wrote:
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.
Excellent - thanks for testing and getting back.
Guenter