Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / drivers / hwmon / lm75.c
index 669481b..90126a2 100644 (file)
@@ -249,19 +249,30 @@ static int lm75_detect(struct i2c_client *new_client,
                                     I2C_FUNC_SMBUS_WORD_DATA))
                return -ENODEV;
 
-       /* Now, we do the remaining detection. There is no identification-
-          dedicated register so we have to rely on several tricks:
-          unused bits, registers cycling over 8-address boundaries,
-          addresses 0x04-0x07 returning the last read value.
-          The cycling+unused addresses combination is not tested,
-          since it would significantly slow the detection down and would
-          hardly add any value.
-
-          The National Semiconductor LM75A is different than earlier
-          LM75s.  It has an ID byte of 0xaX (where X is the chip
-          revision, with 1 being the only revision in existence) in
-          register 7, and unused registers return 0xff rather than the
-          last read value. */
+       /*
+        * Now, we do the remaining detection. There is no identification-
+        * dedicated register so we have to rely on several tricks:
+        * unused bits, registers cycling over 8-address boundaries,
+        * addresses 0x04-0x07 returning the last read value.
+        * The cycling+unused addresses combination is not tested,
+        * since it would significantly slow the detection down and would
+        * hardly add any value.
+        *
+        * The National Semiconductor LM75A is different than earlier
+        * LM75s.  It has an ID byte of 0xaX (where X is the chip
+        * revision, with 1 being the only revision in existence) in
+        * register 7, and unused registers return 0xff rather than the
+        * last read value.
+        *
+        * Note that this function only detects the original National
+        * Semiconductor LM75 and the LM75A. Clones from other vendors
+        * aren't detected, on purpose, because they are typically never
+        * found on PC hardware. They are found on embedded designs where
+        * they can be instantiated explicitly so detection is not needed.
+        * The absence of identification registers on all these clones
+        * would make their exhaustive detection very difficult and weak,
+        * and odds are that the driver would bind to unsupported devices.
+        */
 
        /* Unused bits */
        conf = i2c_smbus_read_byte_data(new_client, 1);