hwmon: (lm87) Fix masking of config register in lm87_init_client()
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 17 Oct 2008 15:51:11 +0000 (17:51 +0200)
committerJean Delvare <khali@mahadeva.delvare>
Fri, 17 Oct 2008 15:51:11 +0000 (17:51 +0200)
lm87_init_client() conditionally sets the Start bit and clears the
INT#_Clear bit in the Config 1 register.  The condition should be that
either of these bits needs changing, but currently it checks the
(self-clearing) Initialization bit instead of INT#_Clear.

Fix the condition and also ensure we never set the Initialization bit.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
drivers/hwmon/lm87.c

index 21970f0d53a1e916c9e031a6a1562e17a38e64b8..0fecbfd2ba5b13f26aeadc9c0c9b84595fe8da4f 100644 (file)
@@ -867,11 +867,11 @@ static void lm87_init_client(struct i2c_client *client)
                        lm87_write_value(client, LM87_REG_IN_MAX(0), 0xFF);
                }
        }
-       if ((config & 0x81) != 0x01) {
-               /* Start monitoring */
+
+       /* Make sure Start is set and INT#_Clear is clear */
+       if ((config & 0x09) != 0x01)
                lm87_write_value(client, LM87_REG_CONFIG,
-                                (config & 0xF7) | 0x01);
-       }
+                                (config & 0x77) | 0x01);
 }
 
 static int lm87_remove(struct i2c_client *client)