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