Skip to content

Commit

Permalink
hwmon: (f71882fg) Fix auto_channels_temp temp numbering with f8000
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Hans de Goede authored and Jean Delvare committed Jan 7, 2009
1 parent 4901062 commit 3045301
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/hwmon/f71882fg.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -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));
Expand Down

0 comments on commit 3045301

Please sign in to comment.