summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2008-10-17 15:51:15 (GMT)
committerJean Delvare <khali@mahadeva.delvare>2008-10-17 15:51:15 (GMT)
commitad3273be8e2a5bfe16f4940beef3da308daf259a (patch)
treeda0660fa8f7e4dfa44ecaf6750fe47c5f223e074
parent18c73f90421f9a87a0f6bc3a08880d0f1f9b2a74 (diff)
downloadlinux-fsl-qoriq-ad3273be8e2a5bfe16f4940beef3da308daf259a.tar.xz
hwmon: (lm78) Prevent misdetection of Winbond chips
The LM78 detection is relatively weak, and sometimes recent Winbond chips can be misdetected as an LM78. We have had repeated reports of this happening. We have an explicit check against this for the ISA access, do the same for I2C access now. Signed-off-by: Jean Delvare <khali@linux-fr.org>
-rw-r--r--drivers/hwmon/lm78.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c
index ec601bb..f284ecb 100644
--- a/drivers/hwmon/lm78.c
+++ b/drivers/hwmon/lm78.c
@@ -613,6 +613,12 @@ static int lm78_detect(struct i2c_adapter *adapter, int address, int kind)
err = -ENODEV;
goto ERROR2;
}
+ /* Explicitly prevent the misdetection of Winbond chips */
+ i = lm78_read_value(data, 0x4f);
+ if (i == 0xa3 || i == 0x5c) {
+ err = -ENODEV;
+ goto ERROR2;
+ }
}
/* Determine the chip type. */