aboutsummaryrefslogtreecommitdiff
path: root/src/superio/ite/common/env_ctrl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/superio/ite/common/env_ctrl.c')
-rw-r--r--src/superio/ite/common/env_ctrl.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/superio/ite/common/env_ctrl.c b/src/superio/ite/common/env_ctrl.c
index 8668110713..c87f32d3e0 100644
--- a/src/superio/ite/common/env_ctrl.c
+++ b/src/superio/ite/common/env_ctrl.c
@@ -128,13 +128,19 @@ static void fan_smartconfig(const u16 base, const u8 fan,
pwm_ctrl = ITE_EC_FAN_CTL_PWM_MODE_AUTOMATIC;
pwm_ctrl |= ITE_EC_FAN_CTL_TEMPIN(conf->tmpin);
- pwm_start = ITE_EC_FAN_CTL_PWM_START_DUTY(conf->pwm_start);
-
- if (CONFIG(SUPERIO_ITE_ENV_CTRL_7BIT_SLOPE_REG)) {
- pwm_auto = conf->slope & 0x7f;
- } else {
- pwm_start |= ITE_EC_FAN_CTL_PWM_SLOPE_BIT6(conf->slope);
+ if (conf->clsd_loop) {
+ pwm_ctrl |= ITE_EC_FAN_PWM_CLSD_LOOP;
+ pwm_start = ITE_EC_FAN_CTL_PWM_START_RPM(conf->rpm_start);
pwm_auto = ITE_EC_FAN_CTL_PWM_SLOPE_LOWER(conf->slope);
+ } else {
+ pwm_start = ITE_EC_FAN_CTL_PWM_START_DUTY(conf->pwm_start);
+
+ if (CONFIG(SUPERIO_ITE_ENV_CTRL_7BIT_SLOPE_REG)) {
+ pwm_auto = conf->slope & 0x7f;
+ } else {
+ pwm_start |= ITE_EC_FAN_CTL_PWM_SLOPE_BIT6(conf->slope);
+ pwm_auto = ITE_EC_FAN_CTL_PWM_SLOPE_LOWER(conf->slope);
+ }
}
if (conf->smoothing)