hoc-clk: auto cpu ram oc
This commit is contained in:
1 parent
2b3883998a
commit
2c4020e71f
8 files changed
+2
-149
No files matched your search
@@ -79,10 +79,6 @@ typedef enum {
|
||||
HocClkConfigValue_MarikoMiddleFreqs,
|
||||
HocClkConfigValue_LiveGpuVoltage,
|
||||
|
||||
HocClkConfigValue_AutoRAMCPUOverclock,
|
||||
HocClkConfigValue_AutoRamCpuCpuOCFreq,
|
||||
HocClkConfigValue_AutoRamCpuRamOCThreshold,
|
||||
|
||||
HocClkConfigValue_Watchdog,
|
||||
|
||||
KipConfigValue_custRev,
|
||||
@@ -343,12 +339,6 @@ static inline const char* hocclkFormatConfigValue(HocClkConfigValue val, bool pr
|
||||
case HocClkConfigValue_LiveGpuVoltage:
|
||||
return pretty ? "GPU Voltage Request" : "gpu_voltage_request";
|
||||
|
||||
case HocClkConfigValue_AutoRAMCPUOverclock:
|
||||
return pretty ? "Auto High RAM CPU OC" : "auto_high_ram_cpu_oc";
|
||||
case HocClkConfigValue_AutoRamCpuCpuOCFreq:
|
||||
return pretty ? "Auto High RAM CPU OC Freq" : "auto_ram_cpu_cpu_oc_freq";
|
||||
case HocClkConfigValue_AutoRamCpuRamOCThreshold:
|
||||
return pretty ? "Auto High RAM CPU OC RAM Threshold" : "auto_ram_cpu_ram_oc_threshold";
|
||||
case HocClkConfigValue_Watchdog:
|
||||
return pretty ? "Watchcat" : "watchdog"; // More dignified
|
||||
// KIP config values
|
||||
@@ -617,12 +607,6 @@ static inline uint64_t hocclkDefaultConfigValue(HocClkConfigValue val)
|
||||
case HocClkConfigValue_GPUDVFSMode:
|
||||
case HocClkConfigValue_CPUDVFSMode:
|
||||
return 1ULL;
|
||||
case HocClkConfigValue_AutoRAMCPUOverclock:
|
||||
return 0ULL;
|
||||
case HocClkConfigValue_AutoRamCpuCpuOCFreq:
|
||||
return 1683000ULL;
|
||||
case HocClkConfigValue_AutoRamCpuRamOCThreshold:
|
||||
return 2666000ULL;
|
||||
case HocClkConfigValue_ThermalThrottleThreshold:
|
||||
return 70ULL;
|
||||
case HocClkConfigValue_CpuGovernorMinimumFreq:
|
||||
@@ -669,7 +653,6 @@ static inline uint64_t hocclkValidConfigValue(HocClkConfigValue val, uint64_t in
|
||||
case HocClkConfigValue_GPUSchedulingMethod:
|
||||
case HocClkConfigValue_MarikoMiddleFreqs:
|
||||
case HocClkConfigValue_LiveGpuVoltage:
|
||||
case HocClkConfigValue_AutoRAMCPUOverclock:
|
||||
case HocClkConfigValue_Watchdog:
|
||||
return (input & 0x1) == input;
|
||||
|
||||
@@ -821,8 +804,6 @@ static inline uint64_t hocclkValidConfigValue(HocClkConfigValue val, uint64_t in
|
||||
case HocClkConfigValue_MemoryFrequencyMeasurementMode:
|
||||
case HocClkConfigValue_RamDisplayUnit:
|
||||
case HocClkConfigValue_AulaDisplayColorPreset:
|
||||
case HocClkConfigValue_AutoRamCpuCpuOCFreq:
|
||||
case HocClkConfigValue_AutoRamCpuRamOCThreshold:
|
||||
case KipConfigValue_PcvDebugVerbosity:
|
||||
return true;
|
||||
case HocClkConfigValue_BatteryChargeCurrent:
|
||||
|
||||
@@ -152,9 +152,6 @@
|
||||
"JEDEC.": "JEDEC.",
|
||||
|
||||
"CPU Boost Clock": "Частота буста",
|
||||
"Auto CPU RAM OC": "Буст CPU → Разг. RAM",
|
||||
"Auto CPU RAM OC CPU clock": "Буст CPU: частота CPU",
|
||||
"Auto CPU RAM OC Threshold": "Буст CPU: порог RAM",
|
||||
"Overwrite Boost Mode": "Перезаписать буст",
|
||||
"CPU UV": "Андервольт CPU",
|
||||
"CPU Unlock": "Разблокировка CPU",
|
||||
|
||||
@@ -149,9 +149,6 @@
|
||||
"RAM-Timing tBreak": "内存时序切换阈值",
|
||||
|
||||
"CPU Boost Clock": "CPU加速频率",
|
||||
"Auto CPU RAM OC": "高内存频率自动提频CPU",
|
||||
"Auto CPU RAM OC CPU clock": "自动提频CPU频率",
|
||||
"Auto CPU RAM OC Threshold": "自动提频触发阈值",
|
||||
"Overwrite Boost Mode": "接管系统CPU调度",
|
||||
"CPU UV": "CPU降压",
|
||||
"CPU Unlock": "CPU解锁",
|
||||
|
||||
@@ -147,9 +147,6 @@
|
||||
"RAM-Timing tBreak": "記憶體時序切換閾值",
|
||||
|
||||
"CPU Boost Clock": "CPU加速頻率",
|
||||
"Auto CPU RAM OC": "高記憶體頻率自動提頻CPU",
|
||||
"Auto CPU RAM OC CPU clock": "自動提頻CPU頻率",
|
||||
"Auto CPU RAM OC Threshold": "自動提頻觸發閾值",
|
||||
"Overwrite Boost Mode": "接管系統CPU調度",
|
||||
"CPU UV": "CPU降壓",
|
||||
"CPU Unlock": "CPU解鎖",
|
||||
|
||||
@@ -457,24 +457,6 @@ std::vector<std::string> ConfigInfoStrings(HocClkConfigValue val, bool isMariko,
|
||||
"The clock used for the CPU in \"boost mode\"",
|
||||
"Default: 1785 MHz"
|
||||
};
|
||||
case HocClkConfigValue_AutoRAMCPUOverclock:
|
||||
return {
|
||||
"When enabled, automatically raises the CPU clock to the configured OC frequency when RAM clock meets or exceeds the threshold to meet the increased voltage requirement.",
|
||||
"Default: ON"
|
||||
};
|
||||
|
||||
case HocClkConfigValue_AutoRamCpuCpuOCFreq:
|
||||
return {
|
||||
"The CPU clock (in MHz) applied when Auto High RAM CPU OC is enabled and the RAM threshold is met.",
|
||||
"Default: 1683 MHz"
|
||||
};
|
||||
|
||||
case HocClkConfigValue_AutoRamCpuRamOCThreshold:
|
||||
return {
|
||||
"The RAM clock threshold (in MHz) at or above which the Auto High RAM CPU OC will activate.",
|
||||
"Default: 2133MHz"
|
||||
};
|
||||
|
||||
case HocClkConfigValue_OverwriteBoostMode:
|
||||
return {
|
||||
"If enabled, profiles can override the boost mode setting",
|
||||
|
||||
@@ -868,85 +868,6 @@ class ExperimentalSettingsSubMenuGui : public MiscGui {
|
||||
addConfigButton(HocClkConfigValue_GPUSchedulingMethod, "GPU Scheduling Override Method", ValueRange(0, 0, 1, "", 0),
|
||||
"GPU Scheduling Override Method", &thresholdsDisabled, {}, gpuSchedMethodValues, false);
|
||||
|
||||
if (IsMariko()) {
|
||||
addHeaderSpacer();
|
||||
this->listElement->addItem(new CompactCategoryHeader("RAM Settings"));
|
||||
std::vector<NamedValue> clkOptionsRamOc = {
|
||||
NamedValue("1122 MHz", 1122000), NamedValue("1224 MHz", 1224000), NamedValue("1326 MHz", 1326000), NamedValue("1428 MHz", 1428000),
|
||||
NamedValue("1581 MHz", 1581000), NamedValue("1683 MHz", 1683000, "Default"), NamedValue("1785 MHz", 1785000), NamedValue("1887 MHz", 1887000),
|
||||
NamedValue("1963 MHz", 1963500), NamedValue("2091 MHz", 2091000), NamedValue("2193 MHz", 2193000), NamedValue("2295 MHz", 2295000),
|
||||
NamedValue("2397 MHz", 2397000), NamedValue("2499 MHz", 2499000), NamedValue("2601 MHz", 2601000), NamedValue("2703 MHz", 2703000),
|
||||
NamedValue("2805 MHz", 2805000),
|
||||
};
|
||||
|
||||
std::vector<NamedValue> emcMaxClock = {
|
||||
NamedValue("1600 MHz", 1600000),
|
||||
NamedValue("1633 MHz", 1633000),
|
||||
NamedValue("1666 MHz", 1666000),
|
||||
NamedValue("1700 MHz", 1700000),
|
||||
NamedValue("1733 MHz", 1733000),
|
||||
NamedValue("1766 MHz", 1766000),
|
||||
NamedValue("1800 MHz", 1800000),
|
||||
NamedValue("1833 MHz", 1833000),
|
||||
NamedValue("1866 MHz", 1866000, "JEDEC."),
|
||||
NamedValue("1900 MHz", 1900000),
|
||||
NamedValue("1933 MHz", 1933000),
|
||||
NamedValue("1966 MHz", 1966000),
|
||||
NamedValue("1996 MHz", 1996800, "JEDEC."),
|
||||
NamedValue("2000 MHz", 2000000),
|
||||
NamedValue("2033 MHz", 2033000),
|
||||
NamedValue("2066 MHz", 2066000),
|
||||
NamedValue("2100 MHz", 2100000),
|
||||
NamedValue("2133 MHz", 2133000, "JEDEC."),
|
||||
NamedValue("2166 MHz", 2166000),
|
||||
NamedValue("2200 MHz", 2200000),
|
||||
NamedValue("2233 MHz", 2233000),
|
||||
NamedValue("2266 MHz", 2266000),
|
||||
NamedValue("2300 MHz", 2300000),
|
||||
NamedValue("2333 MHz", 2333000),
|
||||
NamedValue("2366 MHz", 2366000),
|
||||
NamedValue("2400 MHz", 2400000, "JEDEC."),
|
||||
NamedValue("2433 MHz", 2433000),
|
||||
NamedValue("2466 MHz", 2466000),
|
||||
NamedValue("2500 MHz", 2500000),
|
||||
NamedValue("2533 MHz", 2533000),
|
||||
NamedValue("2566 MHz", 2566000),
|
||||
NamedValue("2600 MHz", 2600000),
|
||||
NamedValue("2633 MHz", 2633000),
|
||||
NamedValue("2666 MHz", 2666000, "JEDEC."),
|
||||
NamedValue("2700 MHz", 2700000),
|
||||
NamedValue("2733 MHz", 2733000),
|
||||
NamedValue("2766 MHz", 2766000),
|
||||
NamedValue("2800 MHz", 2800000),
|
||||
NamedValue("2833 MHz", 2833000),
|
||||
NamedValue("2866 MHz", 2866000),
|
||||
NamedValue("2900 MHz", 2900000),
|
||||
NamedValue("2933 MHz", 2933000, "JEDEC."),
|
||||
NamedValue("2966 MHz", 2966000),
|
||||
NamedValue("3000 MHz", 3000000),
|
||||
NamedValue("3033 MHz", 3033000),
|
||||
NamedValue("3066 MHz", 3066000),
|
||||
NamedValue("3100 MHz", 3100000),
|
||||
NamedValue("3133 MHz", 3133000),
|
||||
NamedValue("3166 MHz", 3166000),
|
||||
NamedValue("3200 MHz", 3200000, "JEDEC."),
|
||||
NamedValue("3233 MHz", 3233000, "±1720 speedo"),
|
||||
NamedValue("3266 MHz", 3266000, "±1740 speedo"),
|
||||
NamedValue("3300 MHz", 3300000, "±1760 speedo"),
|
||||
NamedValue("3333 MHz", 3333000, "±1780 speedo"),
|
||||
NamedValue("3366 MHz", 3366000, "±1800 speedo"),
|
||||
NamedValue("3400 MHz", 3400000, "±1820 speedo"),
|
||||
NamedValue("3433 MHz", 3433000, "±???? speedo"),
|
||||
NamedValue("3466 MHz", 3466000, "±???? speedo"),
|
||||
NamedValue("3500 MHz", 3500000, "±???? speedo"),
|
||||
};
|
||||
addConfigToggle(HocClkConfigValue_AutoRAMCPUOverclock, "Auto CPU RAM OC");
|
||||
addConfigButton(HocClkConfigValue_AutoRamCpuCpuOCFreq, "Auto CPU RAM OC CPU clock", ValueRange(0, 0, 1, "", 1), "CPU Clock",
|
||||
&thresholdsDisabled, {}, clkOptionsRamOc, false, false);
|
||||
addConfigButton(HocClkConfigValue_AutoRamCpuRamOCThreshold, "Auto CPU RAM OC Threshold", ValueRange(0, 0, 1, "", 1), "RAM Clock",
|
||||
&thresholdsDisabled, {}, emcMaxClock, false, false);
|
||||
}
|
||||
|
||||
tsl::elm::CustomDrawer *chargeWarningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) {
|
||||
renderer->drawString("\uE150 Overriding the charge current", false, x + 20, y + 30, 18, tsl::style::color::ColorText);
|
||||
renderer->drawString("can be dangerous and may cause", false, x + 20, y + 50, 18, tsl::style::color::ColorText);
|
||||
|
||||
@@ -558,8 +558,6 @@ namespace mgr {
|
||||
prepareBoostExit = false;
|
||||
}
|
||||
|
||||
u32 ramTargetHz = GetNearestOverrideHz(HocClkModule_MEM);
|
||||
|
||||
bool returnRaw = false; // Return a value scaled to MHz instead of raw value
|
||||
for (unsigned int module = 0; module < HocClkModule_EnumMax; module++) {
|
||||
u32 oldHz = board::GetHz((HocClkModule)module); // Get Old hz (used primarily for DVFS Logic)
|
||||
@@ -608,20 +606,9 @@ namespace mgr {
|
||||
if (noGPU && module == HocClkModule_GPU)
|
||||
continue;
|
||||
|
||||
u32 autoCpuOcHz = 0;
|
||||
if (module == HocClkModule_CPU && file::config::GetConfigValue(HocClkConfigValue_AutoRAMCPUOverclock) && !isBoost &&
|
||||
!mgr::isCpuGovernorEnabled && (board::GetSocType() == HocClkSocType_Mariko)) {
|
||||
u32 threshold = (u32)file::config::GetConfigValue(HocClkConfigValue_AutoRamCpuRamOCThreshold) * 1000;
|
||||
if (ramTargetHz >= threshold)
|
||||
autoCpuOcHz = (u32)file::config::GetConfigValue(HocClkConfigValue_AutoRamCpuCpuOCFreq) * 1000;
|
||||
}
|
||||
|
||||
if (targetHz || autoCpuOcHz) {
|
||||
if (targetHz) {
|
||||
maxHz = GetMaxAllowedHz((HocClkModule)module, gContext.profile);
|
||||
nearestHz = targetHz ? GetNearestHz((HocClkModule)module, targetHz, maxHz) : 0;
|
||||
|
||||
if (autoCpuOcHz > nearestHz)
|
||||
nearestHz = GetNearestHz(HocClkModule_CPU, autoCpuOcHz, maxHz);
|
||||
nearestHz = GetNearestHz((HocClkModule)module, targetHz, maxHz);
|
||||
|
||||
if (nearestHz != gContext.freqs[module]) {
|
||||
file::utils::LogLine("[mgr] %s clock set : %u.%u MHz (target = %u.%u MHz)", board::GetModuleName((HocClkModule)module, true),
|
||||
|
||||
@@ -182,15 +182,6 @@ namespace mgr {
|
||||
|
||||
if (++cpuTick > 50) {
|
||||
minHz = file::config::GetConfigValue(HocClkConfigValue_CpuGovernorMinimumFreq);
|
||||
if (file::config::GetConfigValue(HocClkConfigValue_AutoRAMCPUOverclock)) {
|
||||
u32 ramHz = mgr::gContext.freqs[HocClkModule_MEM];
|
||||
u32 threshold = (u32)file::config::GetConfigValue(HocClkConfigValue_AutoRamCpuRamOCThreshold) * 1000;
|
||||
if (ramHz >= threshold) {
|
||||
u32 overrideHz = (u32)file::config::GetConfigValue(HocClkConfigValue_AutoRamCpuCpuOCFreq) * 1000;
|
||||
if (overrideHz > minHz)
|
||||
minHz = overrideHz;
|
||||
}
|
||||
}
|
||||
cpuTick = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user