diff --git a/doc/FAQ b/doc/FAQ
index 64d088bc..0af9111c 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -691,10 +691,8 @@ settings for the Processor Core voltage (often in0_min and in0_max) in
that file so that they don't depend on vid.
The CPU nominal voltage is computed from VID lines according to a
-formula that depends on the CPU type. Most chips that report a VID
-value can be configured to use either VRM 8.2 (for Pentium III) or VRM
-9.0 (for Pentium 4 and Athlon). You chose which one you want through
-`/etc/sensors.conf'. See `doc/vid' for more information.
+formula that depends on the CPU type. Since Linux 2.6.14, the right
+formula is selected automatically. See `doc/vid' for more information.
4.8 I read sensor values several times a second, but they are only updated only each second or so. Why?
=======================================================================================================
diff --git a/doc/lm_sensors-FAQ.html b/doc/lm_sensors-FAQ.html
index dcc3c65d..4ddf2902 100644
--- a/doc/lm_sensors-FAQ.html
+++ b/doc/lm_sensors-FAQ.html
@@ -1106,9 +1106,8 @@ and change the min and max settings for the Processor Core voltage
(often in0_min and in0_max) in that file so that they don't depend on vid.
The CPU nominal voltage is computed from VID lines according to a formula
-that depends on the CPU type. Most chips that report a VID value can be
-configured to use either VRM 8.2 (for Pentium III) or VRM 9.0 (for Pentium 4
-and Athlon). You chose which one you want through /etc/sensors.conf.
+that depends on the CPU type. Since Linux 2.6.14, the right formula is
+selected automatically.
See doc/vid for more information.
diff --git a/doc/lm_sensors-FAQ.texi b/doc/lm_sensors-FAQ.texi
index 1f1a2fff..b480091f 100644
--- a/doc/lm_sensors-FAQ.texi
+++ b/doc/lm_sensors-FAQ.texi
@@ -716,9 +716,8 @@ and change the min and max settings for the Processor Core voltage
(often in0_min and in0_max) in that file so that they don't depend on vid.
The CPU nominal voltage is computed from VID lines according to a formula
-that depends on the CPU type. Most chips that report a VID value can be
-configured to use either VRM 8.2 (for Pentium III) or VRM 9.0 (for Pentium 4
-and Athlon). You chose which one you want through @file{/etc/sensors.conf}.
+that depends on the CPU type. Since Linux 2.6.9, the right formula is
+selected automatically.
See @file{doc/vid} for more information.
diff --git a/doc/vid b/doc/vid
index 8995dee0..565774d3 100644
--- a/doc/vid
+++ b/doc/vid
@@ -43,76 +43,14 @@ Document Version Voltage Range Increment Processors
AMD Opteron 24x processors.
Note that versions 8.1 - 8.4 are compatible.
-lm_sensors versions through 2.6.3 support only the VRM 8.2 standard.
-
-Starting in lm_sensors 2.6.4 the VRM version is configurable.
-To configure the sensor chip for the correct voltage range,
-you must set the "vrm" correctly either via /proc, /sys, or sensors.conf.
-
-To be compatible with previous lm_sensors versions, the vrm defaults
-to version 8.2. Generally, for recent motherboards, this will not
-be correct. Try 9.0 first.
-
-To change the vrm version to 9.0, for example, do the following
-after the chip module (in this example, w83781d) is loaded:
-
- (kernel 2.4)
- echo 9.0 > /proc/sys/dev/sensors/w83781d-isa-0290/vrm
- (kernel 2.6)
- echo 90 > /sys/bus/i2c/devices/0-0290/vrm
-
-Alternatively, add a line in /etc/sensors.conf in the w83781d section
-(you should put this line BEFORE any line that uses vid in a calculation):
-
- set vrm 9.0
-
-and then, after the chip module is loaded, do:
-
- sensors -s
-
-After this, reading the vid either by
-
- (kernel 2.4)
- cat /proc/sys/dev/sensors/w83781d-isa-0290/vid
- (kernel 2.6 - divide the output by 1000)
- cat /sys/bus/i2c/devices/0-0290/in0_ref
-
-or by
-
- sensors
-
-should show the new vid value.
-
-
-The following values are legal vrm values. Other values will be
-allowed but will result in using the 8.2 standard.
-
- 2.4, 8.1-8.5, 9.0, 9.1, 10.0
-
+Since Linux 2.6.9, the correct VRM version is selected automatically
+based on the CPU brand and model. Thus you shouldn't have to care about
+it. If you are using a brand new CPU and even the latest kernel complains
+("Unknown VRM version of your CPU"), this means that the kernel must be
+taught about this new CPU model. Please report to us in this case.
Remember, the VID pins on the sensor chips are inputs only.
-That means they can't be changed and there shouldn't be
-any problems if you experiment with the vrm values until you
-get it right. You cannot manipulate the actual processor core
-voltage through lm_sensors drivers.
-
-Not all sensor chips have VID inputs.
-For those that do, the VRM support status is listed below.
-
-The following chip drivers support all the VRM versions via
-/etc/sensors.conf and the vrm entry in /proc or /sys:
-
- adm1025, adm1026, asb100, lm85, lm87,
- vt1211, vt8231, w83627hf, w83781d
-
-
-The following chip drivers support only VRM 8.2 and cannot be changed:
-
- adm1024, it87, mtp008
- adm9240, gl520sm, lm78, maxilife
-
-If you have a board with one of these chips which needs advanced
-VRM support please email us.
+You cannot use them to manipulate the actual processor core voltage.
------------------
Copyright (c) 2002-2004 Mark D. Studebaker
diff --git a/etc/sensors.conf.eg b/etc/sensors.conf.eg
index 1f616ee7..06dd49c6 100644
--- a/etc/sensors.conf.eg
+++ b/etc/sensors.conf.eg
@@ -234,7 +234,6 @@
# This is a library dependency.
# A 'set fan1_div' statement must go before a 'set fan1_min' statement,
# because the driver uses the divisor in calculating the minimum.
-# Also, one should set vrm prior to using vid in any formula.
#
#
# BUS LINES
@@ -475,9 +474,6 @@ chip "w83782d-*" "w83627hf-*"
compute in6 (3.14 * @) - 7.71 , (@ + 7.71) / 3.14
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
-# adjust this if your vid is wrong; see doc/vid
-# set vrm 9.0
-
# set limits to 5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage
@@ -538,9 +534,6 @@ chip "w83783s-*"
compute in5 (5.14 * @) - 14.91 , (@ + 14.91) / 5.14
compute in6 (3.14 * @) - 7.71 , (@ + 7.71) / 3.14
-# adjust this if your vid is wrong; see doc/vid
-# set vrm 9.0
-
# set limits to 5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage
@@ -688,9 +681,6 @@ chip "w83627thf-*" "w83637hf-*"
compute in4 (5.14*@)-14.91, (@+14.91)/5.14
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
-# adjust this if your vid is wrong; see doc/vid
-# set vrm 9.0
-
# set limits to 5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage
@@ -886,9 +876,6 @@ chip "as99127f-*"
# label temp3 "CPU 2 Temp"
# ignore temp3
-# adjust this if your vid is wrong; see doc/vid
-# set vrm 9.0
-
# set limits to 5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage
@@ -1336,9 +1323,6 @@ chip "adm1025-*" "ne1619-*"
label in4 "+12V"
label in5 "VCC"
-# Adjust this if your vid is wrong; see doc/vid
-# set vrm 9.0
-
# Tolerate a 5% deviance for CPU power-supply
# set in1_min vid * 0.95
# set in1_max vid * 1.05
@@ -2095,9 +2079,6 @@ chip "vt1211-*"
compute in3 @ * (1 + 14 / 10), @ / (1 + 14 / 10)
compute in4 @ * (1 + 47 / 10), @ / (1 + 47 / 10)
-# Adjust this if your vid is wrong (for 2.4 only); see doc/vid
-# set vrm 9.1
-
# set in0_min 3.3 * 0.95
# set in0_max 3.3 * 1.05
# set in1_min 2.5 * 0.95
@@ -2330,8 +2311,6 @@ chip "smsc47m192-*"
# This example was tested vs. Asus P4S333
#
chip "asb100-*"
-# adjust this if your vid is wrong; see doc/vid
- #set vrm 9.0
label in0 "VCore 1"
#set in0_min vid * 0.95
@@ -2449,10 +2428,6 @@ chip "lm85c-*" "adm1027-*" "adt7463-*" "lm85-*" "lm85b-*"
# ignore fan3
# ignore fan4
-# Set VRM version
-# adjust this if your vid is wrong; see doc/vid
-# set vrm 9.1 # Pentium 4
-
# Set voltage limits
# set in0_min 1.5 * 0.95
# set in0_max 1.5 * 1.05
@@ -2480,9 +2455,6 @@ chip "pc87366-*"
# Voltage inputs
-# Set VRM version (default 9.0)
-# set vrm 9.0
-
label in7 "Vsb"
label in8 "Vdd"
label in9 "Vbat"
diff --git a/lib/access.c b/lib/access.c
index f0b9dfb6..f7bac9cb 100644
--- a/lib/access.c
+++ b/lib/access.c
@@ -553,10 +553,6 @@ sensors_feature_type sensors_feature_get_type(
int i, nr, count;
struct feature_type_match *submatches;
- /* vrm is special */
- if (!strcmp(feature->name, "vrm"))
- return SENSORS_FEATURE_VRM;
-
for(i = 0; matches[i].name != 0; i++)
if ((count = sscanf(feature->name, matches[i].name, &nr, &c)))
break;
diff --git a/lib/sensors.h b/lib/sensors.h
index 9fb6ad4f..8f804dd4 100644
--- a/lib/sensors.h
+++ b/lib/sensors.h
@@ -176,7 +176,6 @@ typedef enum sensors_feature_type {
SENSORS_FEATURE_TEMP_SENS,
SENSORS_FEATURE_VID = 0x300,
- SENSORS_FEATURE_VRM,
SENSORS_FEATURE_UNKNOWN = INT_MAX,
diff --git a/lib/sysfs.c b/lib/sysfs.c
index 1f39d88e..3cb63b1d 100644
--- a/lib/sysfs.c
+++ b/lib/sysfs.c
@@ -52,8 +52,6 @@ int get_type_scaling(int type)
switch (type) {
case SENSORS_FEATURE_VID:
return 3;
- case SENSORS_FEATURE_VRM:
- return 1;
default:
return 0;
}
diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c
index 6e25116e..c949456d 100644
--- a/prog/sensors/chips.c
+++ b/prog/sensors/chips.c
@@ -101,20 +101,17 @@ int sensors_get_label_and_valid(sensors_chip_name name, int feature, char **labe
return err;
}
-void print_vid_info_real(const sensors_chip_name *name, int f_vid, int f_vrm, int label_size)
+void print_vid_info(const sensors_chip_name *name, int f_vid, int label_size)
{
char *label;
int valid;
- double vid, vrm;
+ double vid;
if (!sensors_get_label_and_valid(*name,f_vid,&label,&valid)
&& !sensors_get_feature(*name,f_vid,&vid) ) {
if (valid) {
print_label(label, label_size);
- if(!sensors_get_feature(*name,f_vrm,&vrm))
- printf("%+6.3f V (VRM Version %.1f)\n",vid,vrm);
- else
- printf("%+6.3f V\n",vid);
+ printf("%+6.3f V\n", vid);
}
}
free(label);
diff --git a/prog/sensors/chips.h b/prog/sensors/chips.h
index 26fa2e0a..de854021 100644
--- a/prog/sensors/chips.h
+++ b/prog/sensors/chips.h
@@ -34,7 +34,7 @@ extern void print_unknown_chip(const sensors_chip_name *name);
void print_temp_info(float n_cur, float n_over, float n_hyst,
int minmax, int curprec, int limitprec);
-void print_vid_info_real(const sensors_chip_name *name, int f_vid, int f_vrm, int label_size);
+void print_vid_info(const sensors_chip_name *name, int f_vid, int label_size);
void print_label(const char *label, int space);
diff --git a/prog/sensors/chips_generic.c b/prog/sensors/chips_generic.c
index 6e99c4f2..dc2b7583 100644
--- a/prog/sensors/chips_generic.c
+++ b/prog/sensors/chips_generic.c
@@ -337,23 +337,6 @@ static void print_generic_chip_fan(const sensors_chip_name *name,
printf("\n");
}
-static void print_generic_chip_vid(const sensors_chip_name *name,
- const sensors_feature_data *feature,
- int i, int j, int label_size)
-{
- const sensors_feature_data *vrm_feature;
-
- while((vrm_feature = sensors_get_all_features(*name, &i, &j))) {
- if (sensors_feature_get_type(vrm_feature) == SENSORS_FEATURE_VRM)
- break;
- }
-
- if (vrm_feature != NULL)
- print_vid_info_real(name, feature->number, vrm_feature->number, label_size);
- else
- print_vid_info_real(name, feature->number, -1, label_size);
-}
-
void print_generic_chip(const sensors_chip_name *name)
{
const sensors_feature_data *feature;
@@ -374,7 +357,7 @@ void print_generic_chip(const sensors_chip_name *name)
case SENSORS_FEATURE_FAN:
print_generic_chip_fan(name, feature, i, j, label_size); break;
case SENSORS_FEATURE_VID:
- print_generic_chip_vid(name, feature, i, j, label_size); break;
+ print_vid_info(name, feature->number, label_size); break;
default: continue;
}
}