diff options
author | Hans de Goede <hdegoede@redhat.com> | 2009-01-07 16:37:30 +0100 |
---|---|---|
committer | Jean Delvare <khali@linux-fr.org> | 2009-01-07 16:37:30 +0100 |
commit | 30453018655a3acd5f59e793da55a2f969ed9c32 (patch) | |
tree | 7fb09f75f62dab037a84de7a47d88ee2eea817fa | |
parent | 4901062f78401f09ef0296466172905c93575ddd (diff) | |
download | linux-30453018655a3acd5f59e793da55a2f969ed9c32.tar.gz linux-30453018655a3acd5f59e793da55a2f969ed9c32.tar.xz |
hwmon: (f71882fg) Fix auto_channels_temp temp numbering with f8000
Adjust auto_channels_temp show and store functions for different numbering of
temps between f8000 and other supported models.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
-rw-r--r-- | drivers/hwmon/f71882fg.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/hwmon/f71882fg.c b/drivers/hwmon/f71882fg.c index f4998bf82ca5..0ef7265336ba 100644 --- a/drivers/hwmon/f71882fg.c +++ b/drivers/hwmon/f71882fg.c @@ -1615,8 +1615,9 @@ static ssize_t show_pwm_auto_point_channel(struct device *dev, int result; struct f71882fg_data *data = f71882fg_update_device(dev); int nr = to_sensor_dev_attr_2(devattr)->index; + int temp_start = (data->type == f8000) ? 0 : 1; - result = 1 << ((data->pwm_auto_point_mapping[nr] & 3) - 1); + result = 1 << ((data->pwm_auto_point_mapping[nr] & 3) - temp_start); return sprintf(buf, "%d\n", result); } @@ -1627,20 +1628,23 @@ static ssize_t store_pwm_auto_point_channel(struct device *dev, { struct f71882fg_data *data = dev_get_drvdata(dev); int nr = to_sensor_dev_attr_2(devattr)->index; + int temp_start = (data->type == f8000) ? 0 : 1; long val = simple_strtol(buf, NULL, 10); + switch (val) { case 1: - val = 1; + val = 0; break; case 2: - val = 2; + val = 1; break; case 4: - val = 3; + val = 2; break; default: return -EINVAL; } + val += temp_start; mutex_lock(&data->update_lock); data->pwm_auto_point_mapping[nr] = f71882fg_read8(data, F71882FG_REG_POINT_MAPPING(nr)); |