diff --git a/CHANGES b/CHANGES index aa56ae3a..e46bd0e6 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,7 @@ lm_sensors CHANGES file SVN HEAD RPM: Obsolete, removed File doc/fan-divisors: Update + File sensors_vid.h: Trim VID values to correct number of bits (2.6 backport) Library: Add support for the pc87247 driver (fans only) Probe for busses before chips Drop support for algorithm names diff --git a/kernel/include/sensors_vid.h b/kernel/include/sensors_vid.h index a695fc40..81b36b66 100644 --- a/kernel/include/sensors_vid.h +++ b/kernel/include/sensors_vid.h @@ -58,6 +58,7 @@ static inline int vid_from_reg(int val, int vrm) switch(vrm) { case 100: /* VRD 10.0 */ + val &= 0x3f; if((val & 0x1f) == 0x1f) return 0; if((val & 0x1f) <= 0x09 || val == 0x0a) @@ -70,14 +71,17 @@ static inline int vid_from_reg(int val, int vrm) return vid; case 24: /* Opteron processor */ + val &= 0x1f; return(val == 0x1f ? 0 : 1550 - val * 25); case 91: /* VRM 9.1 */ case 90: /* VRM 9.0 */ + val &= 0x1f; return(val == 0x1f ? 0 : 1850 - val * 25); case 85: /* VRM 8.5 */ + val &= 0x1f; return((val & 0x10 ? 25 : 0) + ((val & 0x0f) > 0x04 ? 2050 : 1250) - ((val & 0x0f) * 50)); @@ -86,6 +90,7 @@ static inline int vid_from_reg(int val, int vrm) val &= 0x0f; /* fall through */ default: /* VRM 8.2 */ + val &= 0x1f; return(val == 0x1f ? 0 : val & 0x10 ? 5100 - (val) * 100 : 2050 - (val) * 50);