From 9a1d3d301f0208295d25c2b9bbb3a0be6fe138da Mon Sep 17 00:00:00 2001 From: uvos Date: Thu, 14 Sep 2023 16:59:37 +0200 Subject: [PATCH] update for 2x mi50 --- main.cpp | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/main.cpp b/main.cpp index c4fbb9e..3f521eb 100644 --- a/main.cpp +++ b/main.cpp @@ -69,33 +69,35 @@ double fan_curve(double temperature, double min_fan, double max_fan, double low_ double gpu_fan_zone(const std::vector& sensors) { - const char mi50Chip[] = "amdgpu-pci-2300"; - const char mi25Chip[] = "amdgpu-pci-4300"; - bool hitMi25 = false; - bool hitMi50 = false; + std::vector> gpus = {{"amdgpu-pci-0300", false}, {"amdgpu-pci-c300", false}}; const char monitored_sensor_name[] = "edge"; double max_temp = std::numeric_limits::min(); for(const Sensor& sensor : sensors) { - if((sensor.chip == mi50Chip || sensor.chip == mi25Chip) && sensor.name == monitored_sensor_name) + if(sensor.name == monitored_sensor_name) { - if(sensor.chip == mi50Chip) - hitMi50 = true; - else - hitMi25 = true; - if(max_temp < sensor.reading) - max_temp = sensor.reading; + for(std::pair& gpu : gpus) + { + if(sensor.chip == gpu.first) + { + gpu.second = true; + } + if(max_temp < sensor.reading) + max_temp = sensor.reading; + } + } + } + for(std::pair& gpu : gpus) + { + if(!gpu.second) + { + std::cerr<<"Could not get temperature from "<& sensors)