sysmodule: change soc type logic
This commit is contained in:
@@ -35,10 +35,21 @@ typedef enum
|
||||
{
|
||||
SysClkSocType_Erista = 0,
|
||||
SysClkSocType_Mariko,
|
||||
SysClkSocType_MarikoLite,
|
||||
SysClkSocType_EnumMax
|
||||
} SysClkSocType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
HorizonOCConsoleType_Unknown = 0,
|
||||
HorizonOCConsoleType_V1,
|
||||
HorizonOCConsoleType_UnreleasedErista,
|
||||
HorizonOCConsoleType_V2,
|
||||
HorizonOCConsoleType_Lite,
|
||||
HorizonOCConsoleType_UnreleasedMariko,
|
||||
HorizonOCConsoleType_OLED,
|
||||
SysClkSocType_EnumMax
|
||||
} HorizonOCConsoleType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SysClkProfile_Handheld = 0,
|
||||
|
||||
@@ -55,8 +55,8 @@ typedef enum {
|
||||
|
||||
HocClkConfigValue_HandheldTDP,
|
||||
HocClkConfigValue_HandheldTDPLimit,
|
||||
|
||||
HocClkConfigValue_LiteTDPLimit,
|
||||
HocClkConfigValue_TDPCycleLimit,
|
||||
|
||||
HocClkConfigValue_EnforceBoardLimit,
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#define HOSSVC_HAS_TC (hosversionAtLeast(5,0,0))
|
||||
|
||||
static SysClkSocType g_socType = SysClkSocType_Erista;
|
||||
static HorizonOCConsoleType g_consoleType = HorizonOCConsoleType_Unknown;
|
||||
|
||||
const char* Board::GetModuleName(SysClkModule module, bool pretty)
|
||||
{
|
||||
@@ -482,6 +483,9 @@ SysClkSocType Board::GetSocType() {
|
||||
return g_socType;
|
||||
}
|
||||
|
||||
HorizonOCConsoleType Board::GetConsoleType() {
|
||||
return g_consoleType;
|
||||
}
|
||||
|
||||
void Board::FetchHardwareInfos()
|
||||
{
|
||||
@@ -496,15 +500,12 @@ void Board::FetchHardwareInfos()
|
||||
|
||||
switch(sku)
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
case 5:
|
||||
case 2 .. 5:
|
||||
g_socType = SysClkSocType_Mariko;
|
||||
break;
|
||||
case 4:
|
||||
g_socType = SysClkSocType_MarikoLite;
|
||||
break;
|
||||
default:
|
||||
g_socType = SysClkSocType_Erista;
|
||||
}
|
||||
|
||||
g_consoleType = sku;
|
||||
}
|
||||
@@ -53,6 +53,7 @@ class Board
|
||||
static std::int32_t GetPowerMw(SysClkPowerSensor sensor);
|
||||
static std::uint32_t GetRamLoad(SysClkRamLoad load);
|
||||
static SysClkSocType GetSocType();
|
||||
static HorizonOCConsoleType GetConsoleType();
|
||||
|
||||
protected:
|
||||
static void FetchHardwareInfos();
|
||||
|
||||
@@ -145,8 +145,6 @@ std::uint32_t ClockManager::GetMaxAllowedHz(SysClkModule module, SysClkProfile p
|
||||
return 460800000;
|
||||
case SysClkSocType_Mariko:
|
||||
return 614400000;
|
||||
case SysClkSocType_MarikoLite:
|
||||
return 537600000;
|
||||
default:
|
||||
return 4294967294;
|
||||
}
|
||||
@@ -230,7 +228,7 @@ void ClockManager::Tick()
|
||||
{
|
||||
std::scoped_lock lock{this->contextMutex};
|
||||
if(this->config->GetConfigValue(HocClkConfigValue_HandheldTDP) && opMode == AppletOperationMode_Handheld) {
|
||||
if(Board::GetSocType() == SysClkSocType_MarikoLite) {
|
||||
if(Board::GetConsoleType() == HorizonOCConsoleType_Lite) {
|
||||
if(Board::GetPowerMw(SysClkPowerSensor_Now) < -(int)this->config->GetConfigValue(HocClkConfigValue_LiteTDPLimit)) {
|
||||
ResetToStockClocks();
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user