Fix reworked temperature mapping

With the reworked temperature mapping it was no longer possible to set
manual mode since the 'automatic' configuration bit was never cleared.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Guenter Roeck
2017-09-20 22:33:31 -07:00
parent 15d49c0592
commit 0e789c5deb

5
it87.c
View File

@@ -1699,6 +1699,7 @@ static ssize_t set_pwm_enable(struct device *dev, struct device_attribute *attr,
if (has_newer_autopwm(data)) { if (has_newer_autopwm(data)) {
ctrl = temp_map_to_reg(data, nr, ctrl = temp_map_to_reg(data, nr,
data->pwm_temp_map[nr]); data->pwm_temp_map[nr]);
ctrl &= 0x7f;
} else { } else {
ctrl = data->pwm_duty[nr]; ctrl = data->pwm_duty[nr];
} }
@@ -1711,7 +1712,9 @@ static ssize_t set_pwm_enable(struct device *dev, struct device_attribute *attr,
if (has_newer_autopwm(data)) { if (has_newer_autopwm(data)) {
ctrl = temp_map_to_reg(data, nr, ctrl = temp_map_to_reg(data, nr,
data->pwm_temp_map[nr]); data->pwm_temp_map[nr]);
if (val != 1) if (val == 1)
ctrl &= 0x7f;
else
ctrl |= 0x80; ctrl |= 0x80;
} else { } else {
ctrl = (val == 1 ? data->pwm_duty[nr] : 0x80); ctrl = (val == 1 ? data->pwm_duty[nr] : 0x80);