OMAP1: Amstrad Delta: add a handler for processing interruptsgenerated by the FIQ...
[safe/jmp/linux-2.6] / drivers / hwmon / adm1031.c
index 5690595..1644b92 100644 (file)
@@ -64,8 +64,7 @@
 /* Addresses to scan */
 static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
 
-/* Insmod parameters */
-I2C_CLIENT_INSMOD_2(adm1030, adm1031);
+enum chips { adm1030, adm1031 };
 
 typedef u8 auto_chan_table_t[8][2];
 
@@ -102,7 +101,7 @@ struct adm1031_data {
 
 static int adm1031_probe(struct i2c_client *client,
                         const struct i2c_device_id *id);
-static int adm1031_detect(struct i2c_client *client, int kind,
+static int adm1031_detect(struct i2c_client *client,
                          struct i2c_board_info *info);
 static void adm1031_init_client(struct i2c_client *client);
 static int adm1031_remove(struct i2c_client *client);
@@ -125,7 +124,7 @@ static struct i2c_driver adm1031_driver = {
        .remove         = adm1031_remove,
        .id_table       = adm1031_id,
        .detect         = adm1031_detect,
-       .address_data   = &addr_data,
+       .address_list   = normal_i2c,
 };
 
 static inline u8 adm1031_read_value(struct i2c_client *client, u8 reg)
@@ -813,35 +812,23 @@ static const struct attribute_group adm1031_group_opt = {
 };
 
 /* Return 0 if detection is successful, -ENODEV otherwise */
-static int adm1031_detect(struct i2c_client *client, int kind,
+static int adm1031_detect(struct i2c_client *client,
                          struct i2c_board_info *info)
 {
        struct i2c_adapter *adapter = client->adapter;
-       const char *name = "";
+       const char *name;
+       int id, co;
 
        if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -ENODEV;
 
-       if (kind < 0) {
-               int id, co;
-               id = i2c_smbus_read_byte_data(client, 0x3d);
-               co = i2c_smbus_read_byte_data(client, 0x3e);
+       id = i2c_smbus_read_byte_data(client, 0x3d);
+       co = i2c_smbus_read_byte_data(client, 0x3e);
 
-               if (!((id == 0x31 || id == 0x30) && co == 0x41))
-                       return -ENODEV;
-               kind = (id == 0x30) ? adm1030 : adm1031;
-       }
-
-       if (kind <= 0)
-               kind = adm1031;
+       if (!((id == 0x31 || id == 0x30) && co == 0x41))
+               return -ENODEV;
+       name = (id == 0x30) ? "adm1030" : "adm1031";
 
-       /* Given the detected chip type, set the chip name and the
-        * auto fan control helper table. */
-       if (kind == adm1030) {
-               name = "adm1030";
-       } else if (kind == adm1031) {
-               name = "adm1031";
-       }
        strlcpy(info->type, name, I2C_NAME_SIZE);
 
        return 0;