瀏覽代碼

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>
Jean Delvare 14 年之前
父節點
當前提交
6f9dfd85f7
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      drivers/hwmon/w83795.c

+ 3 - 3
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);