summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuan Mu <Ymu@winbond.com.tw>2005-11-07 22:19:04 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2005-11-07 21:46:37 -0800
commit4a1c4447e523003019a2bf9b972ed6fe411e84d2 (patch)
tree90dc9edf07dc4373e5c474c6d0083afd8a201998
parentef9627464490fe67235bbd5724d55345b92c0315 (diff)
downloadlinux-4a1c4447e523003019a2bf9b972ed6fe411e84d2.tar.gz
linux-4a1c4447e523003019a2bf9b972ed6fe411e84d2.tar.bz2
linux-4a1c4447e523003019a2bf9b972ed6fe411e84d2.zip
[PATCH] hwmon: Fix two w83627hf bugs
* Fix in4 reads for W83627THF and W83637HF chips. * Use the correct register for alarm flags. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/hwmon/w83627hf.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/hwmon/w83627hf.c b/drivers/hwmon/w83627hf.c
index 70ef926c3bd8..4e9a04e1f08e 100644
--- a/drivers/hwmon/w83627hf.c
+++ b/drivers/hwmon/w83627hf.c
@@ -180,11 +180,10 @@ superio_exit(void)
#define W83781D_REG_BANK 0x4E
#define W83781D_REG_CONFIG 0x40
-#define W83781D_REG_ALARM1 0x41
-#define W83781D_REG_ALARM2 0x42
-#define W83781D_REG_ALARM3 0x450
+#define W83781D_REG_ALARM1 0x459
+#define W83781D_REG_ALARM2 0x45A
+#define W83781D_REG_ALARM3 0x45B
-#define W83781D_REG_IRQ 0x4C
#define W83781D_REG_BEEP_CONFIG 0x4D
#define W83781D_REG_BEEP_INTS1 0x56
#define W83781D_REG_BEEP_INTS2 0x57
@@ -1370,13 +1369,6 @@ static void w83627hf_init_client(struct i2c_client *client)
W83781D_REG_TEMP3_CONFIG, tmp & 0xfe);
}
}
-
- /* enable comparator mode for temp2 and temp3 so
- alarm indication will work correctly */
- i = w83627hf_read_value(client, W83781D_REG_IRQ);
- if (!(i & 0x40))
- w83627hf_write_value(client, W83781D_REG_IRQ,
- i | 0x40);
}
/* Start monitoring */
@@ -1400,7 +1392,7 @@ static struct w83627hf_data *w83627hf_update_device(struct device *dev)
/* skip missing sensors */
if (((data->type == w83697hf) && (i == 1)) ||
((data->type == w83627thf || data->type == w83637hf)
- && (i == 4 || i == 5)))
+ && (i == 5 || i == 6)))
continue;
data->in[i] =
w83627hf_read_value(client, W83781D_REG_IN(i));