提交 4cc00ad1 编写于 作者: M Martin Peres 提交者: Ben Skeggs

drm/nouveau/fan: restore pwm value on resume when in manual/auto mode

If the fan was in manual or auto mode, we should restore the fan speed
that was previously set when resuming.

The initial pwm value is saved when loading the module.
Signed-off-by: NMartin Peres <martin.peres@labri.fr>
Tested-by: NMartin Peres <martin.peres@labri.fr>
Tested-by: NDash Four <mr.dash.four@googlemail.com>
Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
上级 ffb8ea8a
......@@ -267,8 +267,13 @@ _nouveau_therm_init(struct nouveau_object *object)
if (ret)
return ret;
if (priv->suspend >= 0)
if (priv->suspend >= 0) {
/* restore the pwm value only when on manual or auto mode */
if (priv->suspend > 0)
nouveau_therm_fan_set(therm, true, priv->fan->percent);
nouveau_therm_fan_mode(therm, priv->suspend);
}
priv->sensor.program_alarms(therm);
return 0;
}
......
......@@ -234,6 +234,9 @@ nouveau_therm_fan_ctor(struct nouveau_therm *therm)
nv_info(therm, "FAN control: %s\n", priv->fan->type);
/* read the current speed, it is useful when resuming */
priv->fan->percent = nouveau_therm_fan_get(therm);
/* attempt to detect a tachometer connection */
ret = gpio->find(gpio, 0, DCB_GPIO_FAN_SENSE, 0xff, &priv->fan->tach);
if (ret)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册