Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 366716e6 authored by Corentin Labbe's avatar Corentin Labbe Committed by Jean Delvare
Browse files

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: default avatarCorentin Labbe <corentin.labbe@geomatys.fr>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent d664a480
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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]));
}