hwmon: (tmp401/tmp421) Clean up detect functions
authorJean Delvare <khali@linux-fr.org>
Wed, 9 Dec 2009 19:35:54 +0000 (20:35 +0100)
committerJean Delvare <khali@linux-fr.org>
Wed, 9 Dec 2009 19:35:54 +0000 (20:35 +0100)
As kind is now hard-coded to -1, there is room for code clean-ups.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Andre Prendel <andre.prendel@gmx.de>
drivers/hwmon/tmp401.c
drivers/hwmon/tmp421.c

index 7b34f2c..ee96734 100644 (file)
@@ -488,46 +488,43 @@ static void tmp401_init_client(struct i2c_client *client)
                i2c_smbus_write_byte_data(client, TMP401_CONFIG_WRITE, config);
 }
 
-static int tmp401_detect(struct i2c_client *client, int kind,
+static int tmp401_detect(struct i2c_client *client, int _kind,
                         struct i2c_board_info *info)
 {
+       enum chips kind;
        struct i2c_adapter *adapter = client->adapter;
+       u8 reg;
 
        if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -ENODEV;
 
        /* Detect and identify the chip */
-       if (kind <= 0) {
-               u8 reg;
-
-               reg = i2c_smbus_read_byte_data(client,
-                                              TMP401_MANUFACTURER_ID_REG);
-               if (reg != TMP401_MANUFACTURER_ID)
-                       return -ENODEV;
-
-               reg = i2c_smbus_read_byte_data(client, TMP401_DEVICE_ID_REG);
-
-               switch (reg) {
-               case TMP401_DEVICE_ID:
-                       kind = tmp401;
-                       break;
-               case TMP411_DEVICE_ID:
-                       kind = tmp411;
-                       break;
-               default:
-                       return -ENODEV;
-               }
+       reg = i2c_smbus_read_byte_data(client, TMP401_MANUFACTURER_ID_REG);
+       if (reg != TMP401_MANUFACTURER_ID)
+               return -ENODEV;
 
-               reg = i2c_smbus_read_byte_data(client, TMP401_CONFIG_READ);
-               if (reg & 0x1b)
-                       return -ENODEV;
+       reg = i2c_smbus_read_byte_data(client, TMP401_DEVICE_ID_REG);
 
-               reg = i2c_smbus_read_byte_data(client,
-                                              TMP401_CONVERSION_RATE_READ);
-               /* Datasheet says: 0x1-0x6 */
-               if (reg > 15)
-                       return -ENODEV;
+       switch (reg) {
+       case TMP401_DEVICE_ID:
+               kind = tmp401;
+               break;
+       case TMP411_DEVICE_ID:
+               kind = tmp411;
+               break;
+       default:
+               return -ENODEV;
        }
+
+       reg = i2c_smbus_read_byte_data(client, TMP401_CONFIG_READ);
+       if (reg & 0x1b)
+               return -ENODEV;
+
+       reg = i2c_smbus_read_byte_data(client, TMP401_CONVERSION_RATE_READ);
+       /* Datasheet says: 0x1-0x6 */
+       if (reg > 15)
+               return -ENODEV;
+
        strlcpy(info->type, tmp401_id[kind - 1].name, I2C_NAME_SIZE);
 
        return 0;
index 2092434..bb5464a 100644 (file)
@@ -223,39 +223,36 @@ static int tmp421_init_client(struct i2c_client *client)
        return 0;
 }
 
-static int tmp421_detect(struct i2c_client *client, int kind,
+static int tmp421_detect(struct i2c_client *client, int _kind,
                         struct i2c_board_info *info)
 {
+       enum chips kind;
        struct i2c_adapter *adapter = client->adapter;
        const char *names[] = { "TMP421", "TMP422", "TMP423" };
+       u8 reg;
 
        if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -ENODEV;
 
-       if (kind <= 0) {
-               u8 reg;
-
-               reg = i2c_smbus_read_byte_data(client,
-                                              TMP421_MANUFACTURER_ID_REG);
-               if (reg != TMP421_MANUFACTURER_ID)
-                       return -ENODEV;
-
-               reg = i2c_smbus_read_byte_data(client,
-                                              TMP421_DEVICE_ID_REG);
-               switch (reg) {
-               case TMP421_DEVICE_ID:
-                       kind = tmp421;
-                       break;
-               case TMP422_DEVICE_ID:
-                       kind = tmp422;
-                       break;
-               case TMP423_DEVICE_ID:
-                       kind = tmp423;
-                       break;
-               default:
-                       return -ENODEV;
-               }
+       reg = i2c_smbus_read_byte_data(client, TMP421_MANUFACTURER_ID_REG);
+       if (reg != TMP421_MANUFACTURER_ID)
+               return -ENODEV;
+
+       reg = i2c_smbus_read_byte_data(client, TMP421_DEVICE_ID_REG);
+       switch (reg) {
+       case TMP421_DEVICE_ID:
+               kind = tmp421;
+               break;
+       case TMP422_DEVICE_ID:
+               kind = tmp422;
+               break;
+       case TMP423_DEVICE_ID:
+               kind = tmp423;
+               break;
+       default:
+               return -ENODEV;
        }
+
        strlcpy(info->type, tmp421_id[kind - 1].name, I2C_NAME_SIZE);
        dev_info(&adapter->dev, "Detected TI %s chip at 0x%02x\n",
                 names[kind - 1], client->addr);