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; } }