Commit 7eb8d508 authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

hwmon: (w83795) Fix parity checks

x % 1 is obviously wrong, as it always evaluates to 0. You want
x % 2, or x & 1, for parity checking.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent a654b9d4
...@@ -183,7 +183,7 @@ static const u8 IN_LSB_SHIFT_IDX[][2] = { ...@@ -183,7 +183,7 @@ static const u8 IN_LSB_SHIFT_IDX[][2] = {
#define W83795_REG_FAN_MIN_HL(index) (0xB6 + (index)) #define W83795_REG_FAN_MIN_HL(index) (0xB6 + (index))
#define W83795_REG_FAN_MIN_LSB(index) (0xC4 + (index) / 2) #define W83795_REG_FAN_MIN_LSB(index) (0xC4 + (index) / 2)
#define W83795_REG_FAN_MIN_LSB_SHIFT(index) \ #define W83795_REG_FAN_MIN_LSB_SHIFT(index) \
(((index) % 1) ? 4 : 0) (((index) & 1) ? 4 : 0)
#define W83795_REG_VID_CTRL 0x6A #define W83795_REG_VID_CTRL 0x6A
...@@ -670,7 +670,7 @@ store_fan_min(struct device *dev, struct device_attribute *attr, ...@@ -670,7 +670,7 @@ store_fan_min(struct device *dev, struct device_attribute *attr,
data->fan_min[index] = val; data->fan_min[index] = val;
w83795_write(client, W83795_REG_FAN_MIN_HL(index), (val >> 4) & 0xff); w83795_write(client, W83795_REG_FAN_MIN_HL(index), (val >> 4) & 0xff);
val &= 0x0f; val &= 0x0f;
if (index % 1) { if (index & 1) {
val <<= 4; val <<= 4;
val |= w83795_read(client, W83795_REG_FAN_MIN_LSB(index)) val |= w83795_read(client, W83795_REG_FAN_MIN_LSB(index))
& 0x0f; & 0x0f;
...@@ -823,7 +823,7 @@ show_temp_src(struct device *dev, struct device_attribute *attr, char *buf) ...@@ -823,7 +823,7 @@ show_temp_src(struct device *dev, struct device_attribute *attr, char *buf)
u8 val = index / 2; u8 val = index / 2;
u8 tmp = data->temp_src[val]; u8 tmp = data->temp_src[val];
if (index % 1) if (index & 1)
val = 4; val = 4;
else else
val = 0; val = 0;
...@@ -850,7 +850,7 @@ store_temp_src(struct device *dev, struct device_attribute *attr, ...@@ -850,7 +850,7 @@ store_temp_src(struct device *dev, struct device_attribute *attr,
tmp = SENSORS_LIMIT(tmp, 0, 15); tmp = SENSORS_LIMIT(tmp, 0, 15);
mutex_lock(&data->update_lock); mutex_lock(&data->update_lock);
if (index % 1) { if (index & 1) {
tmp <<= 4; tmp <<= 4;
data->temp_src[val] &= 0x0f; data->temp_src[val] &= 0x0f;
} else { } else {
......
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