From b1739cea748cf2541ca2228ae36166872148d3ff Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Sat, 7 Feb 2026 18:38:37 -0500 Subject: [PATCH] sysclk: rework clock capping --- Source/sys-clk/overlay/Makefile | 2 +- .../sys-clk/sysmodule/src/clock_manager.cpp | 32 ++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/Source/sys-clk/overlay/Makefile b/Source/sys-clk/overlay/Makefile index bd4302e0..810f8a42 100644 --- a/Source/sys-clk/overlay/Makefile +++ b/Source/sys-clk/overlay/Makefile @@ -39,7 +39,7 @@ include ${TOPDIR}/lib/libultrahand/ultrahand.mk # version control constants #--------------------------------------------------------------------------------- #TARGET_VERSION := $(shell git describe --dirty --always --tags) -APP_VERSION := 0.34 +APP_VERSION := 0.35 TARGET_VERSION := $(APP_VERSION) #--------------------------------------------------------------------------------- diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index eaaa8e41..5de73f35 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -208,9 +208,18 @@ std::uint32_t ClockManager::GetMaxAllowedHz(SysClkModule module, SysClkProfile p case SysClkSocType_Erista: return 460800000; case SysClkSocType_Mariko: - return 614400000; + switch(this->config->GetConfigValue(KipConfigValue_marikoGpuUV)) { + case 0: + return 614400000; + case 1: + return 691200000; + case 2: + return 768000000; + default: + return 614400000; + } default: - return 4294967294; + return 460800000; } } else if (profile <= SysClkProfile_HandheldChargingUSB) @@ -219,11 +228,26 @@ std::uint32_t ClockManager::GetMaxAllowedHz(SysClkModule module, SysClkProfile p case SysClkSocType_Erista: return 768000000; case SysClkSocType_Mariko: - return 921600000; + switch(this->config->GetConfigValue(KipConfigValue_marikoGpuUV)) { + case 0: + return 844800000; + case 1: + return 921600000; + case 2: + return 998400000; + default: + return 844800000; + } default: - return 4294967294; + return 768000000; } } + } else if(module == SysClkModule_CPU) { + if(profile < SysClkProfile_HandheldCharging && Board::GetSocType() == SysClkSocType_Erista) { + return 1581000000; + } else { + return 4294967294; + } } } return 0;