mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 15:19:51 +00:00
hwmon: (pwm-fan) Explicitly switch off fan power when setting pwm1_enable to 0
When pwm1_enable is changed from 1 to 0 while pwm1 == 0, the regulator is not switched off as expected. The reason is that when the fan is already off, ctx->enabled is false, so pwm_fan_power_off() will be a no-op. Handle this case explicitly in pwm_fan_update_enable() by calling pwm_fan_switch_power() directly. Fixes: b99152d4f04b ("hwmon: (pwm-fan) Switch regulator dynamically") Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> Link: https://lore.kernel.org/r/20221013135951.4902-1-matthias.schiffer@ew.tq-group.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
b6291023f6
commit
3008d20f54
@ -257,7 +257,10 @@ static int pwm_fan_update_enable(struct pwm_fan_ctx *ctx, long val)
|
|||||||
|
|
||||||
if (val == 0) {
|
if (val == 0) {
|
||||||
/* Disable pwm-fan unconditionally */
|
/* Disable pwm-fan unconditionally */
|
||||||
ret = __set_pwm(ctx, 0);
|
if (ctx->enabled)
|
||||||
|
ret = __set_pwm(ctx, 0);
|
||||||
|
else
|
||||||
|
ret = pwm_fan_switch_power(ctx, false);
|
||||||
if (ret)
|
if (ret)
|
||||||
ctx->enable_mode = old_val;
|
ctx->enable_mode = old_val;
|
||||||
pwm_fan_update_state(ctx, 0);
|
pwm_fan_update_state(ctx, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user