diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index 80731712..6291bb93 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -100,13 +100,27 @@ ClockManager::ClockManager() -2 ); - - threadStart(&governorTHREAD); + FixCpuBug(); this->context->speedos[HorizonOCSpeedo_CPU] = Board::getCPUSpeedo(); this->context->speedos[HorizonOCSpeedo_GPU] = Board::getGPUSpeedo(); this->context->speedos[HorizonOCSpeedo_SOC] = Board::getSOCSpeedo(); + +} + +void ClockManager::FixCpuBug() { + Board::SetHz(SysClkModule_CPU, 1785000000); // this will just set to the max when kip is unloaded so idgaf + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 1963000000); + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 2091000000); + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 2397000000); + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 1020000000); + svcSleepThread(5'000'000); + ResetToStockClocks(); } ClockManager::~ClockManager() diff --git a/Source/sys-clk/sysmodule/src/clock_manager.h b/Source/sys-clk/sysmodule/src/clock_manager.h index ff52fe4e..da6dedec 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.h +++ b/Source/sys-clk/sysmodule/src/clock_manager.h @@ -49,6 +49,7 @@ class ClockManager ClockManager(); virtual ~ClockManager(); + void FixCpuBug(); SysClkContext GetCurrentContext(); Config* GetConfig();