| From 82dbe987b70042b340f851bdc969a971081e5f02 Mon Sep 17 00:00:00 2001 |
| From: Guenter Roeck <linux@roeck-us.net> |
| Date: Wed, 8 Feb 2017 14:02:59 -0800 |
| Subject: hwmon: (it87) Ensure that pwm control cache is current before updating values |
| |
| From: Guenter Roeck <linux@roeck-us.net> |
| |
| commit 82dbe987b70042b340f851bdc969a971081e5f02 upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/hwmon/it87.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/hwmon/it87.c |
| +++ b/drivers/hwmon/it87.c |
| @@ -1354,6 +1354,7 @@ static ssize_t set_pwm(struct device *de |
| 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 |
| @@ -1466,6 +1467,7 @@ static ssize_t set_pwm_temp_map(struct d |
| } |
| |
| 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; |