Commit 75c99029 authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

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: default avatarJean Delvare <khali@linux-fr.org>
parent c7176cb5
...@@ -102,9 +102,9 @@ superio_exit(int base) ...@@ -102,9 +102,9 @@ superio_exit(int base)
* ISA constants * ISA constants
*/ */
#define REGION_LENGTH 2 #define REGION_LENGTH 8
#define ADDR_REG_OFFSET 0 #define ADDR_REG_OFFSET 5
#define DATA_REG_OFFSET 1 #define DATA_REG_OFFSET 6
/* /*
* Registers * Registers
...@@ -1359,6 +1359,7 @@ static int __init f71805f_find(int sioaddr, unsigned short *address, ...@@ -1359,6 +1359,7 @@ static int __init f71805f_find(int sioaddr, unsigned short *address,
"skipping\n"); "skipping\n");
goto exit; goto exit;
} }
*address &= ~(REGION_LENGTH - 1); /* Ignore 3 LSB */
err = 0; err = 0;
printk(KERN_INFO DRVNAME ": Found %s chip at %#x, revision %u\n", printk(KERN_INFO DRVNAME ": Found %s chip at %#x, revision %u\n",
......
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