From 22858791e9ea83d6b316a5dcab55366c48025051 Mon Sep 17 00:00:00 2001 From: sebastian-dev Date: Tue, 11 Aug 2020 09:22:28 +0200 Subject: [PATCH] Bugfix: AMD 39xx CCD Temperatures (#289) --- .../Hardware/Cpu/Amd17Cpu.cs | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/LibreHardwareMonitorLib/Hardware/Cpu/Amd17Cpu.cs b/LibreHardwareMonitorLib/Hardware/Cpu/Amd17Cpu.cs index f3967ed..1dc253d 100644 --- a/LibreHardwareMonitorLib/Hardware/Cpu/Amd17Cpu.cs +++ b/LibreHardwareMonitorLib/Hardware/Cpu/Amd17Cpu.cs @@ -278,25 +278,19 @@ namespace LibreHardwareMonitor.Hardware.CPU Ring0.ReadPciConfig(0x00, FAMILY_17H_PCI_CONTROL_REGISTER + 4, out uint ccdRawTemp); ccdRawTemp &= 0xFFF; - if (ccdRawTemp == 0) - break; - - float ccdTemp = ((ccdRawTemp * 125) - 305000) * 0.001f; - if (ccdTemp > 125) // Zen 2 reports 95 degrees C max, but it might exceed that. - break; - - - if (_ccdTemperatures[i] == null) + if (ccdRawTemp > 0 && ccdTemp < 125) // Zen 2 reports 95 degrees C max, but it might exceed that. { - _hardware.ActivateSensor(_ccdTemperatures[i] = new Sensor($"CCD{i + 1} (Tdie)", - _hardware._sensorTemperatures++, - SensorType.Temperature, - _hardware, - _hardware._settings)); + if (_ccdTemperatures[i] == null) + { + _hardware.ActivateSensor(_ccdTemperatures[i] = new Sensor($"CCD{i + 1} (Tdie)", + _hardware._sensorTemperatures++, + SensorType.Temperature, + _hardware, + _hardware._settings)); + } + _ccdTemperatures[i].Value = ccdTemp; } - - _ccdTemperatures[i].Value = ccdTemp; } Sensor[] activeCcds = _ccdTemperatures.Where(x => x != null).ToArray();