diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index a82576b..8647657 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -238,6 +238,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard return Model.Z170_A; case var _ when name.Equals("Z77 Pro4-M", StringComparison.OrdinalIgnoreCase): return Model.Z77Pro4M; + case var _ when name.Equals("X570 Pro4", StringComparison.OrdinalIgnoreCase): + return Model.X570_Pro4; case var _ when name.Equals("AX370-Gaming 5", StringComparison.OrdinalIgnoreCase): return Model.AX370_Gaming_5; case var _ when name.Equals("TUF X470-PLUS GAMING", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs index 57ac63d..1d0d096 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs @@ -51,6 +51,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc NCT6793D = 0xD121, NCT6795D = 0xD352, NCT6796D = 0xD423, + NCT6796DR = 0xD42A, NCT6797D = 0xD451, NCT6798D = 0xD42B, @@ -110,6 +111,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc case Chip.NCT6793D: return "Nuvoton NCT6793D"; case Chip.NCT6795D: return "Nuvoton NCT6795D"; case Chip.NCT6796D: return "Nuvoton NCT6796D"; + case Chip.NCT6796DR: return "Nuvoton NCT6796D-R"; case Chip.NCT6797D: return "Nuvoton NCT6797D"; case Chip.NCT6798D: return "Nuvoton NCT6798D"; diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs index bc4a947..15089a0 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs @@ -364,6 +364,10 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc chip = Chip.NCT6796D; logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; break; + case 0x2A: + chip = Chip.NCT6796DR; + logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; + break; case 0x51: chip = Chip.NCT6797D; logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; @@ -395,7 +399,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc ushort vendorId = port.ReadWord(FINTEK_VENDOR_ID_REGISTER); // disable the hardware monitor i/o space lock on NCT679*D chips - if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6796D || chip == Chip.NCT6793D || chip == Chip.NCT6795D || chip == Chip.NCT6798D || chip == Chip.NCT6797D)) + if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6796D || chip == Chip.NCT6796DR || chip == Chip.NCT6793D || chip == Chip.NCT6795D || chip == Chip.NCT6798D || chip == Chip.NCT6797D)) { port.NuvotonDisableIOSpaceLock(); } @@ -452,6 +456,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc case Chip.NCT6793D: case Chip.NCT6795D: case Chip.NCT6796D: + case Chip.NCT6796DR: case Chip.NCT6797D: case Chip.NCT6798D: { diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs index 8b9c534..a80eb14 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs @@ -128,23 +128,31 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc case Chip.NCT6793D: case Chip.NCT6795D: case Chip.NCT6796D: + case Chip.NCT6796DR: case Chip.NCT6797D: case Chip.NCT6798D: { - if (chip == Chip.NCT6779D) + switch (chip) { - Fans = new float?[5]; - Controls = new float?[5]; - } - else if (chip == Chip.NCT6797D || chip == Chip.NCT6798D) - { - Fans = new float?[7]; - Controls = new float?[7]; - } - else - { - Fans = new float?[6]; - Controls = new float?[6]; + case Chip.NCT6779D: + { + Fans = new float?[5]; + Controls = new float?[5]; + break; + } + case Chip.NCT6797D: + case Chip.NCT6798D: + { + Fans = new float?[7]; + Controls = new float?[7]; + break; + } + default: + { + Fans = new float?[6]; + Controls = new float?[6]; + break; + } } _fanRpmRegister = new ushort[] { 0x4c0, 0x4c2, 0x4c4, 0x4c6, 0x4c8, 0x4ca, 0x4ce }; @@ -527,7 +535,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc private void DisableIOSpaceLock() { - if (Chip != Chip.NCT6791D && Chip != Chip.NCT6796D && Chip != Chip.NCT6793D && Chip != Chip.NCT6795D && Chip != Chip.NCT6798D && Chip != Chip.NCT6797D) + if (Chip != Chip.NCT6791D && Chip != Chip.NCT6796D && Chip != Chip.NCT6796DR && Chip != Chip.NCT6793D && Chip != Chip.NCT6795D && Chip != Chip.NCT6798D && Chip != Chip.NCT6797D) return; diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 183da58..f7deb45 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -30,6 +30,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard P55_Deluxe, X399_Phantom_Gaming_6, Z77Pro4M, + X570_Pro4, // ASUS CROSSHAIR_III_FORMULA, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Motherboard.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Motherboard.cs index 9fd8c6c..f2c948b 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Motherboard.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Motherboard.cs @@ -37,10 +37,14 @@ namespace LibreHardwareMonitor.Hardware.Motherboard _name = manufacturer + " " + smBios.Board.ProductName; } else + { _name = manufacturer.ToString(); + } } else + { _name = Manufacturer.Unknown.ToString(); + } _customName = settings.GetValue(new Identifier(Identifier, "name").ToString(), _name); diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index 219fb65..e55b85c 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -303,6 +303,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard case Chip.NCT6793D: case Chip.NCT6795D: case Chip.NCT6796D: + case Chip.NCT6796DR: case Chip.NCT6797D: case Chip.NCT6798D: GetNuvotonConfigurationD(superIO, manufacturer, model, v, t, f, c);