summaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/f71805f.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2006-12-12 18:18:29 +0100
committerJean Delvare <khali@arrakis.delvare>2006-12-12 18:18:29 +0100
commit75c990291dd7af84ea68f3c3ead934b51d0b81ad (patch)
tree68525383de2cd7dc328e0e326a6c445d304532c2 /drivers/hwmon/f71805f.c
parentc7176cb515edbc937006fd05fa391b0d926a337a (diff)
downloadlinux-75c990291dd7af84ea68f3c3ead934b51d0b81ad.tar.bz2
hwmon/f71805f: Fix the device address decoding
The lowest 3 bits are ignored, and the chip decodes all 8 addresses, not only the 2 it needs. Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon/f71805f.c')
-rw-r--r--drivers/hwmon/f71805f.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/hwmon/f71805f.c b/drivers/hwmon/f71805f.c
index 37ba421789bc..a272cae8f60e 100644
--- a/drivers/hwmon/f71805f.c
+++ b/drivers/hwmon/f71805f.c
@@ -102,9 +102,9 @@ superio_exit(int base)
* ISA constants
*/
-#define REGION_LENGTH 2
-#define ADDR_REG_OFFSET 0
-#define DATA_REG_OFFSET 1
+#define REGION_LENGTH 8
+#define ADDR_REG_OFFSET 5
+#define DATA_REG_OFFSET 6
/*
* Registers
@@ -1359,6 +1359,7 @@ static int __init f71805f_find(int sioaddr, unsigned short *address,
"skipping\n");
goto exit;
}
+ *address &= ~(REGION_LENGTH - 1); /* Ignore 3 LSB */
err = 0;
printk(KERN_INFO DRVNAME ": Found %s chip at %#x, revision %u\n",