diff options
author | Jean Delvare <khali@linux-fr.org> | 2010-10-28 20:31:46 +0200 |
---|---|---|
committer | Jean Delvare <khali@endymion.delvare> | 2010-10-28 20:31:46 +0200 |
commit | 6f9dfd85f7b14dd3ea87106909dc54def08947b1 (patch) | |
tree | 9125e0dc58c36738ffb6dba087aa74492bc4bcbe /drivers/hwmon/w83795.c | |
parent | hwmon: (w83795) Only start monitoring if needed (diff) | |
download | linux-6f9dfd85f7b14dd3ea87106909dc54def08947b1.tar.xz linux-6f9dfd85f7b14dd3ea87106909dc54def08947b1.zip |
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: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to '')
-rw-r--r-- | drivers/hwmon/w83795.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/hwmon/w83795.c b/drivers/hwmon/w83795.c index 62deffcc64a3..77b4f7859df9 100644 --- a/drivers/hwmon/w83795.c +++ b/drivers/hwmon/w83795.c @@ -1335,7 +1335,7 @@ show_in(struct device *dev, struct device_attribute *attr, char *buf) case IN_READ: /* calculate this value again by sensors as sensors3.conf */ if ((index >= 17) && - ((data->has_gain >> (index - 17)) & 1)) + !((data->has_gain >> (index - 17)) & 1)) val *= 8; break; case IN_MAX: @@ -1345,7 +1345,7 @@ show_in(struct device *dev, struct device_attribute *attr, char *buf) val |= (data->in_lsb[lsb_idx][nr] >> IN_LSB_SHIFT_IDX[lsb_idx][IN_LSB_SHIFT]) & 0x03; if ((index >= 17) && - ((data->has_gain >> (index - 17)) & 1)) + !((data->has_gain >> (index - 17)) & 1)) val *= 8; break; } @@ -1373,7 +1373,7 @@ store_in(struct device *dev, struct device_attribute *attr, val = in_to_reg(index, val); if ((index >= 17) && - ((data->has_gain >> (index - 17)) & 1)) + !((data->has_gain >> (index - 17)) & 1)) val /= 8; val = SENSORS_LIMIT(val, 0, 0x3FF); mutex_lock(&data->update_lock); |