]> git.sur5r.net Git - groeck-it87/commitdiff
Ensure that pwm control cache is current before updating values
authorGuenter Roeck <linux@roeck-us.net>
Tue, 27 Sep 2016 00:35:56 +0000 (17:35 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 27 Sep 2016 00:35:56 +0000 (17:35 -0700)
If sensor attributes were never read, the pwm control data has not been
initiialized, which can cause wrong driver behavior. Ensure that cached
data is current before acting on it.

Reported-by: Kevin Folz <kfolz@evertz.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
it87.c

diff --git a/it87.c b/it87.c
index e6ca420e59b5054b834538ca4f7cdfb0b1b44037..f028820d55d7482e9bacd40ad2ceac8b17bfb381 100644 (file)
--- a/it87.c
+++ b/it87.c
@@ -1361,6 +1361,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *attr,
                return -EINVAL;
 
        mutex_lock(&data->update_lock);
+       it87_update_pwm_ctrl(data, nr);
        if (has_newer_autopwm(data)) {
                /*
                 * If we are in automatic mode, the PWM duty cycle register
@@ -1473,6 +1474,7 @@ static ssize_t set_pwm_temp_map(struct device *dev,
        }
 
        mutex_lock(&data->update_lock);
+       it87_update_pwm_ctrl(data, nr);
        data->pwm_temp_map[nr] = reg;
        /*
         * If we are in automatic mode, write the temp mapping immediately;