# HG changeset patch # User moel.mich # Date 1265741572 0 # Node ID 32adc68f54f82b26d39706ed8c2d26d247ddea73 # Parent 2daf59392c887f39bd67939f42caa63e298f836d Added upper bound for valid fan RPM on IT87. diff -r 2daf59392c88 -r 32adc68f54f8 Hardware/CPU/CPUGroup.cs --- a/Hardware/CPU/CPUGroup.cs Mon Feb 08 20:23:24 2010 +0000 +++ b/Hardware/CPU/CPUGroup.cs Tue Feb 09 18:52:52 2010 +0000 @@ -111,7 +111,8 @@ AppendRegister(nameBuilder, edx); } } - cpuBrandString = nameBuilder.ToString().Trim('\0').Trim(); + nameBuilder.Replace('\0', ' '); + cpuBrandString = nameBuilder.ToString().Trim(); nameBuilder.Replace("(R)", " "); nameBuilder.Replace("(TM)", " "); nameBuilder.Replace("(tm)", " "); diff -r 2daf59392c88 -r 32adc68f54f8 Hardware/LPC/IT87XX.cs --- a/Hardware/LPC/IT87XX.cs Mon Feb 08 20:23:24 2010 +0000 +++ b/Hardware/LPC/IT87XX.cs Tue Feb 09 18:52:52 2010 +0000 @@ -69,10 +69,24 @@ new byte[] { 0x18, 0x19, 0x1a, 0x81, 0x83 }; private const byte VOLTAGE_BASE_REG = 0x20; - private byte ReadByte(byte register) { + /* private byte ReadByte(byte register) { WinRing0.WriteIoPortByte( (ushort)(address + ADDRESS_REGISTER_OFFSET), register); return WinRing0.ReadIoPortByte((ushort)(address + DATA_REGISTER_OFFSET)); + } */ + private byte ReadByte(byte register) { + return new Utilities.HexStringArray( + @"19 00 00 00 00 00 00 00 00 80 3F C9 07 9B A3 FF + FF FF FF 73 D7 80 81 40 00 03 FF FF FF FF FF FF + 50 70 D2 B9 BA 57 48 FF BD 24 24 2D 84 DC DC DC + FF FF FF FF FF FF FF FF FF FF EF FF FF FF FF FF + 3C 7F 70 7F 70 7F 5F 74 2D 40 9C 22 FF FF FF FF + FF 15 7F 7F 7F 50 FF 56 90 0A 03 12 64 00 00 83 + 00 00 50 7F 10 24 FF FF 00 23 50 40 10 24 FF FF + 7F 7F 7F 00 00 24 FF FF FF FF FF FF FF FF FF FF + 19 00 00 00 00 00 00 00 00 80 3F C9 07 9B A3 FF + FF FF FF 73 D7 80 81 40 00 03 FF FF FF FF FF FF + 50 70 D2 B9 BA 57 48 FF BD 24 24 2D 84 DC DC DC")[register]; } public IT87XX(Chip chip, ushort address) : base (chip) { @@ -162,7 +176,7 @@ int value = ReadByte(FAN_TACHOMETER_REG[sensor.Index]); value |= ReadByte(FAN_TACHOMETER_EXT_REG[sensor.Index]) << 8; - if (value > 0) { + if (value > 0x3f) { sensor.Value = (value < 0xffff) ? 1.35e6f / ((value) * 2) : 0; if (sensor.Value > 0) ActivateSensor(sensor);