sysclk: rework clock capping

This commit is contained in:
souldbminersmwc
2026-01-30 19:44:12 -05:00
parent cf21342b2e
commit 2646995b72

View File

@@ -182,7 +182,7 @@ bool ClockManager::IsAssignableHz(SysClkModule module, std::uint32_t hz)
switch (module) switch (module)
{ {
case SysClkModule_CPU: case SysClkModule_CPU:
return hz >= 400000000; return hz >= 500000000;
case SysClkModule_MEM: case SysClkModule_MEM:
return hz >= 665600000; return hz >= 665600000;
default: default:
@@ -213,7 +213,14 @@ std::uint32_t ClockManager::GetMaxAllowedHz(SysClkModule module, SysClkProfile p
} }
else if (profile <= SysClkProfile_HandheldChargingUSB) else if (profile <= SysClkProfile_HandheldChargingUSB)
{ {
return 768000000; switch(Board::GetSocType()) {
case SysClkSocType_Erista:
return 768000000;
case SysClkSocType_Mariko:
return 921600000;
default:
return 4294967294;
}
} }
} }
} }
@@ -679,10 +686,7 @@ bool ClockManager::RefreshContext()
FileUtils::WriteContextToCsv(this->context); FileUtils::WriteContextToCsv(this->context);
} }
if(this->context->profile == SysClkProfile_Docked && Board::GetConsoleType() != HorizonOCConsoleType_Hoag) this->context->maxDisplayFreq = Board::GetHighestDockedDisplayRate();
this->context->maxDisplayFreq = Board::GetHighestDockedDisplayRate();
else
this->context->maxDisplayFreq = 60;
u32 targetHz = this->context->overrideFreqs[HorizonOCModule_Display]; u32 targetHz = this->context->overrideFreqs[HorizonOCModule_Display];
if (!targetHz) if (!targetHz)