From 341407b59effdabae385e9cb16987098ec553314 Mon Sep 17 00:00:00 2001 From: Christopher Crouse Date: Sat, 10 Oct 2026 16:06:06 +0200 Subject: [PATCH] Fix: AMD CPU temps --- src/Resources/CPU.vala | 19 ++++++++++++++----- src/Resources/Hwmon/HwmonPathsParser.vala | 3 ++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Resources/CPU.vala b/src/Resources/CPU.vala index 8c68f1b0a..5f1122418 100644 --- a/src/Resources/CPU.vala +++ b/src/Resources/CPU.vala @@ -52,13 +52,22 @@ public class Monitor.CPU : Object { get { double summed = 0; int number_of_temperatures = temperatures.size; - if (number_of_temperatures == 0) return 0.0; - foreach (var temperature in temperatures.values) { + if (number_of_temperatures == 0) { + return 0.0; + } + + // The newer AMD Ryzen CPU's requires the zenpower module to provide the Tdie temperature value. + if (temperatures.has_key ("Tdie")) { + return double.parse (temperatures["Tdie"].input) / 1000; + } - // checking if AMD Ryzen; in AMD Ryzen we only want Tdie - if (temperature.label == "Tdie") return double.parse (temperature.input) / 1000; + // The k10temp module does not expose Tdie, so use the Tctl temperature value as fallback. + if (temperatures.has_key ("Tctl")) { + return double.parse (temperatures["Tctl"].input) / 1000; + } - // for Intel we want only temperatures of cores + // Intel we want only temperatures of cores. + foreach (var temperature in temperatures.values) { if (temperature.label.contains ("Package")) { number_of_temperatures--; continue; diff --git a/src/Resources/Hwmon/HwmonPathsParser.vala b/src/Resources/Hwmon/HwmonPathsParser.vala index 9a432c540..de50add47 100644 --- a/src/Resources/Hwmon/HwmonPathsParser.vala +++ b/src/Resources/Hwmon/HwmonPathsParser.vala @@ -42,7 +42,8 @@ class Monitor.HwmonPathParser : Object { if (interface_name == "coretemp" || interface_name == "k10temp" || - interface_name == "cpu_thermal" + interface_name == "cpu_thermal" || + interface_name == "zenpower" ) { debug ("Found HWMON CPU Interface: %s in: %s", interface_name, hwmonx_name); this.parse (cpu_paths_parser, hwmonx);