From 68ee04002256fd782d7bb6bd168a91972823da1e Mon Sep 17 00:00:00 2001 From: CyrIng Date: Tue, 6 Aug 2024 11:54:56 +0200 Subject: [PATCH] [AMD][Zen] Inject threshold events when thermal is out of bounds --- x86_64/corefreqk.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/x86_64/corefreqk.c b/x86_64/corefreqk.c index af9e9fb1..7f499dfa 100644 --- a/x86_64/corefreqk.c +++ b/x86_64/corefreqk.c @@ -16217,12 +16217,25 @@ static void Core_AMD_Zen_Filter_Temp( CORE_RO *Core, unsigned int CurTmp, */ Core->PowerThermal.Sensor = CurTmp; - if ((scaleRangeSel == true) - && (Core->PowerThermal.Sensor >= (49 << 3))) - { + if (scaleRangeSel == true) { + if (Core->PowerThermal.Sensor >= (49 << 3)) + { Core->PowerThermal.Param.Offset[THERMAL_OFFSET_P1] = 49; + + if (Core->PowerThermal.Sensor > (255 << 3)) { + Core->PowerThermal.Events[eLOG] |= EVENT_THOLD2_LOG; + } + } else { + Core->PowerThermal.Param.Offset[THERMAL_OFFSET_P1] = 0; + + Core->PowerThermal.Events[eLOG] |= EVENT_THOLD1_LOG; + } } else { Core->PowerThermal.Param.Offset[THERMAL_OFFSET_P1] = 0; + + if (Core->PowerThermal.Sensor > (225 << 3)) { + Core->PowerThermal.Events[eLOG] |= EVENT_THOLD2_LOG; + } } }