- [Sys-clk-OC]: Avoid conflicts with ptm module setting boost clocks

- [Sys-clk-OC]: Reduce sensitivity of Auto CPU Boost (≥95%)
- [test_patch]: Throw error if no patching entries were found.
This commit is contained in:
KazushiM
2022-04-14 23:06:39 +08:00
parent 926b9016b1
commit c369641229
4 changed files with 35 additions and 17 deletions

View File

@@ -180,7 +180,7 @@ The `[values]` section allows you to alter timings in sys-clk, you should not ne
| Key | Desc | Default |
|:-----------------------:|-------------------------------------------------------------------------------|:-------:|
|**auto_cpu_boost** | Auto-boost CPU when system Core #3 utilization is high | ON |
|**auto_cpu_boost** | Auto-boost CPU when system Core #3 utilization ≥ 95% | ON |
|**sync_reversenx_mode** | Sync nominal profile (mode) with ReverseNX (-Tool and -RT) | ON |
|**temp_log_interval_ms** | Defines how often sys-clk log temperatures, in milliseconds (`0` to disable) | 0 ms |
|**csv_write_interval_ms**| Defines how often sys-clk writes to the CSV, in milliseconds (`0` to disable) | 0 ms |

View File

@@ -244,16 +244,7 @@ void ClockManager::WaitForNextTick()
uint64_t freeIdleTick = 19'200 * tickWaitTimeMs;
uint8_t freePerc = systemCoreIdleTick / (freeIdleTick / 100);
uint8_t systemCoreBoostFreeThreshold = 5;
switch (this->context->realProfile)
{
case SysClkProfile_HandheldChargingOfficial:
case SysClkProfile_Docked:
systemCoreBoostFreeThreshold = 10;
break;
default:
break;
}
constexpr uint8_t systemCoreBoostFreeThreshold = 5;
bool systemCoreBoostCPUPrevState = this->oc->systemCoreBoostCPU;
this->oc->systemCoreBoostCPU = (freePerc <= systemCoreBoostFreeThreshold);
@@ -416,7 +407,8 @@ bool ClockManager::RefreshContext()
}
// restore clocks to stock values on app or profile change
if(hasChanged)
// and let ptm module handle boost clocks rather than resetting
if (hasChanged && !IsCpuBoostMode())
Clocks::ResetToStock();
/* Check ReverseNX-RT and adjust nominal profile when context changes */