diff options
author | Corentin Labbe <corentin.labbe@geomatys.fr> | 2008-10-17 17:51:20 +0200 |
---|---|---|
committer | Jean Delvare <khali@mahadeva.delvare> | 2008-10-17 17:51:20 +0200 |
commit | 366716e6aabfb6f7c65525cc1637e035bfaf422d (patch) | |
tree | a08980a1795a0338c6d96ac41f61efebeb937c1a /drivers/hwmon/adm1029.c | |
parent | d664a4809e73c878a43607d584b2e2b60fd07468 (diff) | |
download | op-kernel-dev-366716e6aabfb6f7c65525cc1637e035bfaf422d.zip op-kernel-dev-366716e6aabfb6f7c65525cc1637e035bfaf422d.tar.gz |
hwmon: (adm1029) Use mask for fan_div value
This is my patch for testing correct values of fan div in adm1029 and
prevent a division by 0 for some (unlikely) register values.
Signed-off-by: Corentin Labbe <corentin.labbe@geomatys.fr>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon/adm1029.c')
-rw-r--r-- | drivers/hwmon/adm1029.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/hwmon/adm1029.c b/drivers/hwmon/adm1029.c index ba84ca5..3671815 100644 --- a/drivers/hwmon/adm1029.c +++ b/drivers/hwmon/adm1029.c @@ -179,7 +179,8 @@ show_fan(struct device *dev, struct device_attribute *devattr, char *buf) struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); struct adm1029_data *data = adm1029_update_device(dev); u16 val; - if (data->fan[attr->index] == 0 || data->fan_div[attr->index] == 0 + if (data->fan[attr->index] == 0 + || (data->fan_div[attr->index] & 0xC0) == 0 || data->fan[attr->index] == 255) { return sprintf(buf, "0\n"); } @@ -194,7 +195,7 @@ show_fan_div(struct device *dev, struct device_attribute *devattr, char *buf) { struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); struct adm1029_data *data = adm1029_update_device(dev); - if (data->fan_div[attr->index] == 0) + if ((data->fan_div[attr->index] & 0xC0) == 0) return sprintf(buf, "0\n"); return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[attr->index])); } |