diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 50cc48d..6b056de 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -200,6 +200,8 @@ internal class Identification return Model.A890GXM_A; case var _ when name.Equals("X58 SLI Classified", StringComparison.OrdinalIgnoreCase): return Model.X58_SLI_Classified; + case var _ when name.Equals("132-BL-E758", StringComparison.OrdinalIgnoreCase): + return Model.X58_3X_SLI; case var _ when name.Equals("965P-S3", StringComparison.OrdinalIgnoreCase): return Model._965P_S3; case var _ when name.Equals("EP45-DS3R", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/F718XX.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/F718XX.cs index 4f53aab..5de0eff 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/F718XX.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/F718XX.cs @@ -26,7 +26,7 @@ internal class F718XX : ISuperIO Voltages = new float?[chip == Chip.F71858 ? 3 : 9]; Temperatures = new float?[chip == Chip.F71808E ? 2 : 3]; Fans = new float?[chip is Chip.F71882 or Chip.F71858 ? 4 : 3]; - Controls = new float?[chip == Chip.F71878AD ? 3 : 0]; + Controls = new float?[chip == Chip.F71878AD ? 3 : (chip == Chip.F71882 ? 4 : 0)]; } public Chip Chip { get; } @@ -191,7 +191,14 @@ internal class F718XX : ISuperIO for (int i = 0; i < Controls.Length; i++) { - Controls[i] = ReadByte((byte)(PWM_VALUES_OFFSET + i)) * 100.0f / 0xFF; + if (Chip == Chip.F71882) + { + Controls[i] = ReadByte((byte)(FAN_PWM_REG[i])) * 100.0f / 0xFF; + } + else + { + Controls[i] = ReadByte((byte)(PWM_VALUES_OFFSET + i)) * 100.0f / 0xFF; + } } Ring0.ReleaseIsaBusMutex(); @@ -242,4 +249,4 @@ internal class F718XX : ISuperIO // ReSharper restore InconsistentNaming #pragma warning restore IDE1006 // Naming Styles -} \ No newline at end of file +} diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index fcb28c2..3511be9 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -103,6 +103,7 @@ public enum Model // EVGA X58_SLI_Classified, + X58_3X_SLI, // Gigabyte _965P_S3, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index d13e51f..e4a3f0d 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -1950,6 +1950,30 @@ internal sealed class SuperIOHardware : Hardware break; + case Model.X58_3X_SLI: // F71882 + v.Add(new Voltage("VCC3V", 0, 150, 150)); + v.Add(new Voltage("Vcore", 1, 47, 100)); + v.Add(new Voltage("DIMM", 2, 47, 100)); + v.Add(new Voltage("CPU VTT", 3, 24, 100)); + v.Add(new Voltage("IOH Vcore", 4, 24, 100)); + v.Add(new Voltage("+5V", 5, 51, 12)); + v.Add(new Voltage("+12V", 6, 56, 6.8f)); + v.Add(new Voltage("3VSB", 7, 150, 150)); + v.Add(new Voltage("VBat", 8, 150, 150)); + t.Add(new Temperature("CPU", 0)); + t.Add(new Temperature("VREG", 1)); + t.Add(new Temperature("System", 2)); + f.Add(new Fan("CPU Fan", 0)); + f.Add(new Fan("Power Fan", 1)); + f.Add(new Fan("Chassis Fan", 2)); + f.Add(new Fan("Chipset Fan", 3)); + c.Add(new Control("CPU Fan", 0)); + c.Add(new Control("Power Fan", 1)); + c.Add(new Control("Chassis Fan", 2)); + c.Add(new Control("Chipset Fan", 3)); + + break; + default: v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("Vcore", 1));