Commit 6f9dfd85 authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

hwmon: (w83795) Fix in17-in20 gain factor

Gain bit set means 1x gain and cleared means 8x gain, not the other
way around.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent 80646b95
...@@ -1335,7 +1335,7 @@ show_in(struct device *dev, struct device_attribute *attr, char *buf) ...@@ -1335,7 +1335,7 @@ show_in(struct device *dev, struct device_attribute *attr, char *buf)
case IN_READ: case IN_READ:
/* calculate this value again by sensors as sensors3.conf */ /* calculate this value again by sensors as sensors3.conf */
if ((index >= 17) && if ((index >= 17) &&
((data->has_gain >> (index - 17)) & 1)) !((data->has_gain >> (index - 17)) & 1))
val *= 8; val *= 8;
break; break;
case IN_MAX: case IN_MAX:
...@@ -1345,7 +1345,7 @@ show_in(struct device *dev, struct device_attribute *attr, char *buf) ...@@ -1345,7 +1345,7 @@ show_in(struct device *dev, struct device_attribute *attr, char *buf)
val |= (data->in_lsb[lsb_idx][nr] >> val |= (data->in_lsb[lsb_idx][nr] >>
IN_LSB_SHIFT_IDX[lsb_idx][IN_LSB_SHIFT]) & 0x03; IN_LSB_SHIFT_IDX[lsb_idx][IN_LSB_SHIFT]) & 0x03;
if ((index >= 17) && if ((index >= 17) &&
((data->has_gain >> (index - 17)) & 1)) !((data->has_gain >> (index - 17)) & 1))
val *= 8; val *= 8;
break; break;
} }
...@@ -1373,7 +1373,7 @@ store_in(struct device *dev, struct device_attribute *attr, ...@@ -1373,7 +1373,7 @@ store_in(struct device *dev, struct device_attribute *attr,
val = in_to_reg(index, val); val = in_to_reg(index, val);
if ((index >= 17) && if ((index >= 17) &&
((data->has_gain >> (index - 17)) & 1)) !((data->has_gain >> (index - 17)) & 1))
val /= 8; val /= 8;
val = SENSORS_LIMIT(val, 0, 0x3FF); val = SENSORS_LIMIT(val, 0, 0x3FF);
mutex_lock(&data->update_lock); mutex_lock(&data->update_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment