From 7af0721847ab93646e8b9dcc00807f9d211b1ccd Mon Sep 17 00:00:00 2001 From: Lightos1 <124387232+Lightos1@users.noreply.github.com> Date: Thu, 12 Feb 2026 17:02:52 +0100 Subject: [PATCH] DVFS: Safety check fix --- Source/sys-clk/sysmodule/src/clock_manager.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index beb3b477..9d9f7c93 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -573,15 +573,11 @@ void ClockManager::Tick() Board::PcvHijackDvfs(vmin); /* Update the voltage. */ - I2c_BuckConverter_SetMvOut(&I2c_Mariko_GPU, vmin); - - /* Wait until it's safe to update clock. */ - u32 gpuVolts; - while ((gpuVolts = I2c_BuckConverter_GetMvOut(&I2c_Mariko_GPU)) != vmin) { - svcSleepThread(50000); + if (I2c_BuckConverter_GetMvOut(&I2c_Mariko_GPU) < vmin) { + I2c_BuckConverter_SetMvOut(&I2c_Mariko_GPU, vmin); } - this->context->voltages[HocClkVoltage_GPU] = gpuVolts; + this->context->voltages[HocClkVoltage_GPU] = vmin; } Board::SetHz((SysClkModule)module, nearestHz);