From 79ee323cbe8fdb75f8537c5e669d09c9291c696d Mon Sep 17 00:00:00 2001 From: Lightos1 <124387232+Lightos1@users.noreply.github.com> Date: Mon, 5 Oct 2026 22:53:30 +0200 Subject: [PATCH] hoc-clk: apply ram oc cpu dvfs unstuck fix when decreasing voltage --- Source/hoc-clk/sysmodule/src/board/board_volt.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/hoc-clk/sysmodule/src/board/board_volt.cpp b/Source/hoc-clk/sysmodule/src/board/board_volt.cpp index b20554a0..2366c592 100644 --- a/Source/hoc-clk/sysmodule/src/board/board_volt.cpp +++ b/Source/hoc-clk/sysmodule/src/board/board_volt.cpp @@ -616,9 +616,10 @@ namespace board { constexpr u32 PmicStep = 5; struct { - volatile u32 *lut = nullptr; + volatile u32 *lut = nullptr; u32 table[LutSize] = {}; - bool initialized = false; + u32 lastVmin = 0; + bool initialized = false; } cpuVoltData; } @@ -762,7 +763,7 @@ namespace board { } void ApplyCpuMinVolt(u32 vmin) { - if (!cpuVoltData.initialized) { + if (!cpuVoltData.initialized || vmin == cpuVoltData.lastVmin) { return; } @@ -792,6 +793,12 @@ namespace board { PadLutTail(tmpLut, valid); VolatileCopyDwords(cpuVoltData.lut, tmpLut, LutSize); + + if (vmin < cpuVoltData.lastVmin) { + UnstuckFreqWar(); + } + + cpuVoltData.lastVmin = vmin; } }