From 6f9dfd85f7b14dd3ea87106909dc54def08947b1 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Thu, 28 Oct 2010 20:31:46 +0200 Subject: 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 --- drivers/hwmon/w83795.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/hwmon/w83795.c b/drivers/hwmon/w83795.c index 62deffc..77b4f78 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); -- cgit v1.1