summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2007-05-08 17:21:59 +0200
committerJean Delvare <khali@hyperion.delvare>2007-05-08 17:21:59 +0200
commit8a665a0552c414af88788cc0e2cf0e4626182c20 (patch)
tree52b23555f5e240d81180cf4aab82b90bca804d1b
parenthwmon/smsc47m1: Get rid of a useless mutex (diff)
downloadlinux-8a665a0552c414af88788cc0e2cf0e4626182c20.tar.xz
linux-8a665a0552c414af88788cc0e2cf0e4626182c20.zip
hwmon: Only call vid_which_vrm() when needed
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>
-rw-r--r--drivers/hwmon/lm87.c2
-rw-r--r--drivers/hwmon/w83627hf.c9
2 files changed, 6 insertions, 5 deletions
diff --git a/drivers/hwmon/lm87.c b/drivers/hwmon/lm87.c
index 3ce825489e34..988ae1c4aada 100644
--- a/drivers/hwmon/lm87.c
+++ b/drivers/hwmon/lm87.c
@@ -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)) {
diff --git a/drivers/hwmon/w83627hf.c b/drivers/hwmon/w83627hf.c
index d7e240635b3b..3ed67a5cd53c 100644
--- a/drivers/hwmon/w83627hf.c
+++ b/drivers/hwmon/w83627hf.c
@@ -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])) {