hwmon: (lm90) Use generic i2c reads during detection
authorJean Delvare <khali@linux-fr.org>
Sun, 25 Nov 2007 20:58:21 +0000 (21:58 +0100)
committerMark M. Hoffman <mhoffman@lightlink.com>
Fri, 8 Feb 2008 01:39:41 +0000 (20:39 -0500)
As indirectly reported by Olof Johansson, the lm90 driver uses a
custom i2c read function even during detection, at which point we
don't know yet what device we're talking with. It would make more
sense to only use the generic i2c read function at this point, so
that we don't log irrelevant errors on misdetection.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
drivers/hwmon/lm90.c

index 960df9fa75afe16cc4d0ecad7bf6130f4cb665e4..116093d0eb3ea2834b8b48bdae704acadfadc9db 100644 (file)
@@ -531,24 +531,24 @@ static int lm90_detect(struct i2c_adapter *adapter, int address, int kind)
                kind = lm90;
 
        if (kind < 0) { /* detection and identification */
-               u8 man_id, chip_id, reg_config1, reg_convrate;
-
-               if (lm90_read_reg(new_client, LM90_REG_R_MAN_ID,
-                                 &man_id) < 0
-                || lm90_read_reg(new_client, LM90_REG_R_CHIP_ID,
-                                 &chip_id) < 0
-                || lm90_read_reg(new_client, LM90_REG_R_CONFIG1,
-                                 &reg_config1) < 0
-                || lm90_read_reg(new_client, LM90_REG_R_CONVRATE,
-                                 &reg_convrate) < 0)
+               int man_id, chip_id, reg_config1, reg_convrate;
+
+               if ((man_id = i2c_smbus_read_byte_data(new_client,
+                                               LM90_REG_R_MAN_ID)) < 0
+                || (chip_id = i2c_smbus_read_byte_data(new_client,
+                                               LM90_REG_R_CHIP_ID)) < 0
+                || (reg_config1 = i2c_smbus_read_byte_data(new_client,
+                                               LM90_REG_R_CONFIG1)) < 0
+                || (reg_convrate = i2c_smbus_read_byte_data(new_client,
+                                               LM90_REG_R_CONVRATE)) < 0)
                        goto exit_free;
                
                if ((address == 0x4C || address == 0x4D)
                 && man_id == 0x01) { /* National Semiconductor */
-                       u8 reg_config2;
+                       int reg_config2;
 
-                       if (lm90_read_reg(new_client, LM90_REG_R_CONFIG2,
-                                         &reg_config2) < 0)
+                       if ((reg_config2 = i2c_smbus_read_byte_data(new_client,
+                                               LM90_REG_R_CONFIG2)) < 0)
                                goto exit_free;
 
                        if ((reg_config1 & 0x2A) == 0x00