hwmon: (lm78) Prevent misdetection of Winbond chips
authorJean Delvare <khali@linux-fr.org>
Fri, 17 Oct 2008 15:51:15 +0000 (17:51 +0200)
committerJean Delvare <khali@mahadeva.delvare>
Fri, 17 Oct 2008 15:51:15 +0000 (17:51 +0200)
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>
drivers/hwmon/lm78.c

index ec601bbf91b9cbd71cd36eb2aa7e5e5cb67e60f0..f284ecbb9ca801688986f607b4ce7e2ec8f4eb7e 100644 (file)
@@ -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. */