From cfae441656496b7e8fdb4b4f34ae8100c94a548e Mon Sep 17 00:00:00 2001 From: Lightos1 <124387232+Lightos1@users.noreply.github.com> Date: Mon, 4 May 2026 18:33:38 +0200 Subject: [PATCH] fix boost mode exit --- Source/hoc-clk/sysmodule/src/clock_manager.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Source/hoc-clk/sysmodule/src/clock_manager.cpp b/Source/hoc-clk/sysmodule/src/clock_manager.cpp index 6d082297..7d1bb8d9 100644 --- a/Source/hoc-clk/sysmodule/src/clock_manager.cpp +++ b/Source/hoc-clk/sysmodule/src/clock_manager.cpp @@ -330,16 +330,21 @@ namespace clockManager { std::uint32_t targetHz = 0; std::uint32_t maxHz = 0; std::uint32_t nearestHz = 0; + static bool prepareBoostExit = false; + bool didHijackPcv = false; bool skipCpuDueToBoost = isBoost && !config::GetConfigValue(HocClkConfigValue_OverwriteBoostMode); if (skipCpuDueToBoost) { - u32 boostFreq = board::GetHz(HocClkModule_CPU); - if (boostFreq / 1000000 > 1785) { - board::SetHz(HocClkModule_CPU, boostFreq); - } + board::SetHz(HocClkModule_CPU, board::GetHz(HocClkModule_CPU)); + prepareBoostExit = true; return; // Return if we aren't overwriting boost mode } + if (prepareBoostExit) { + board::SetHz(HocClkModule_CPU, board::GetHz(HocClkModule_CPU)); + prepareBoostExit = false; + } + bool returnRaw = false; // Return a value scaled to MHz instead of raw value for (unsigned int module = 0; module < HocClkModule_EnumMax; module++) { u32 oldHz = board::GetHz((HocClkModule)module); // Get Old hz (used primarily for DVFS Logic)