hwmon: Only call vid_which_vrm() when needed
authorJean Delvare <khali@linux-fr.org>
Tue, 8 May 2007 15:21:59 +0000 (17:21 +0200)
committerJean Delvare <khali@hyperion.delvare>
Tue, 8 May 2007 15:21:59 +0000 (17:21 +0200)
Some hardware monitoring drivers create the VID/VRM interface files
conditionally depending on the chip model or configuration. We should
only call vid_which_vrm() when we are actually going to create the
files. Not only it is more logical and efficient that way, but it also
prevents printing unnecessary warnings such as the one reported here:
http://lists.lm-sensors.org/pipermail/lm-sensors/2007-February/018954.html

Signed-off-by: Jean Delvare <khali@linux-fr.org>
drivers/hwmon/lm87.c
drivers/hwmon/w83627hf.c

index 3ce825489e349c0c106646356397aa87eae69531..988ae1c4aada69ebb2f9315258ac1b4ee878f65b 100644 (file)
@@ -747,6 +747,7 @@ static int lm87_detect(struct i2c_adapter *adapter, int address, int kind)
        }
 
        if (!(data->channel & CHAN_NO_VID)) {
+               data->vrm = vid_which_vrm();
                if ((err = device_create_file(&new_client->dev,
                                        &dev_attr_cpu0_vid))
                 || (err = device_create_file(&new_client->dev,
@@ -779,7 +780,6 @@ static void lm87_init_client(struct i2c_client *client)
        u8 config;
 
        data->channel = lm87_read_value(client, LM87_REG_CHANNEL_MODE);
-       data->vrm = vid_which_vrm();
 
        config = lm87_read_value(client, LM87_REG_CONFIG);
        if (!(config & 0x01)) {
index d7e240635b3b7b3d370d81db423e48e90b3249a8..3ed67a5cd53c216f94e4c291606b201e47db3bb3 100644 (file)
@@ -1181,12 +1181,16 @@ static int w83627hf_detect(struct i2c_adapter *adapter)
                                        &dev_attr_temp3_type)))
                        goto ERROR4;
 
-       if (kind != w83697hf && data->vid != 0xff)
+       if (kind != w83697hf && data->vid != 0xff) {
+               /* Convert VID to voltage based on VRM */
+               data->vrm = vid_which_vrm();
+
                if ((err = device_create_file(&new_client->dev,
                                        &dev_attr_cpu0_vid))
                 || (err = device_create_file(&new_client->dev,
                                        &dev_attr_vrm)))
                        goto ERROR4;
+       }
 
        if (kind == w83627thf || kind == w83637hf || kind == w83687thf)
                if ((err = device_create_file(&new_client->dev,
@@ -1420,9 +1424,6 @@ static void w83627hf_init_client(struct i2c_client *client)
                        w83627hf_read_value(client, W83627THF_REG_VRM_OVT_CFG);
        }
 
-       /* Convert VID to voltage based on VRM */
-       data->vrm = vid_which_vrm();
-
        tmp = w83627hf_read_value(client, W83781D_REG_SCFG1);
        for (i = 1; i <= 3; i++) {
                if (!(tmp & BIT_SCFG1[i - 1])) {