diff options
author | Guenter Roeck <guenter.roeck@ericsson.com> | 2011-01-21 09:42:17 +0100 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-04-17 16:16:16 -0400 |
commit | c81ac5970095a62139f4904e638c304b220e76e5 (patch) | |
tree | 5a0eee43f86e1c74ba7669f5571d9e365b432ca0 | |
parent | 595e0399c0ab27188f4067e44274662fbe3aa4ce (diff) |
hwmon: (w83627ehf) Fix max_output and step_output readings
[extraction from commit da2e025590cf7038440132d4bbc967a579b11112 upstream]
The value of max_output and step_output registers isn't read from the
respective registers. As a result, zero values are returned to the
user through the respective sysfs attributes, instead of the actual
fan control settings.
The problem is fixed by updating the fan max output and fan step
output information from data in registers.
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | drivers/hwmon/w83627ehf.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c index 0dcaba9b718..dc53e618045 100644 --- a/drivers/hwmon/w83627ehf.c +++ b/drivers/hwmon/w83627ehf.c @@ -524,7 +524,7 @@ static struct w83627ehf_data *w83627ehf_update_device(struct device *dev) } } - for (i = 0; i < 4; i++) { + for (i = 0; i < data->pwm_num; i++) { /* pwmcfg, tolerance mapped for i=0, i=1 to same reg */ if (i != 1) { pwmcfg = w83627ehf_read_value(data, @@ -546,6 +546,17 @@ static struct w83627ehf_data *w83627ehf_update_device(struct device *dev) W83627EHF_REG_FAN_STOP_OUTPUT[i]); data->fan_stop_time[i] = w83627ehf_read_value(data, W83627EHF_REG_FAN_STOP_TIME[i]); + + if (W83627EHF_REG_FAN_MAX_OUTPUT[i] != 0xff) + data->fan_max_output[i] = + w83627ehf_read_value(data, + W83627EHF_REG_FAN_MAX_OUTPUT[i]); + + if (W83627EHF_REG_FAN_STEP_OUTPUT[i] != 0xff) + data->fan_step_output[i] = + w83627ehf_read_value(data, + W83627EHF_REG_FAN_STEP_OUTPUT[i]); + data->target_temp[i] = w83627ehf_read_value(data, W83627EHF_REG_TARGET[i]) & |