Sys-clk-OC: Fixed #41; Erista support added; Manager is deprecated
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include <switch.h>
|
||||
#include <string.h>
|
||||
#include <stdatomic.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static Service g_sysclkSrv;
|
||||
static atomic_size_t g_refCnt;
|
||||
@@ -119,3 +120,29 @@ Result sysclkIpcSetReverseNXRTMode(ReverseNXMode mode)
|
||||
{
|
||||
return serviceDispatchIn(&g_sysclkSrv, SysClkIpcCmd_SetReverseNXRTMode, mode);
|
||||
}
|
||||
|
||||
Result sysclkIpcGetFrequencyTable(SysClkModule module, SysClkProfile profile, size_t max_entry_num, uint32_t* out_table)
|
||||
{
|
||||
SysClkIpc_GetFrequencyTable_Args args = {
|
||||
.module = module,
|
||||
.profile = profile,
|
||||
.max_entry_num = max_entry_num
|
||||
};
|
||||
size_t table_size = sizeof(uint32_t) * max_entry_num;
|
||||
uint32_t* table = malloc(table_size);
|
||||
memset(table, 0, table_size);
|
||||
|
||||
SfDispatchParams disp;
|
||||
|
||||
Result rc = serviceDispatchImpl(
|
||||
&g_sysclkSrv, SysClkIpcCmd_GetFrequencyTable,
|
||||
&args, sizeof(args),
|
||||
table, table_size, disp);
|
||||
|
||||
if (R_FAILED(rc))
|
||||
return rc;
|
||||
|
||||
memcpy(out_table, table, table_size);
|
||||
free(table);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -9,13 +9,14 @@
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sysclk/clocks.h>
|
||||
|
||||
uint32_t sysclk_g_freq_table_mem_hz[] = {
|
||||
uint32_t g_freq_table_mem_hz[] = {
|
||||
// From Hekate Minerva module
|
||||
// 665600000,
|
||||
// 800000000,
|
||||
// 1065600000,
|
||||
// 1331200000,
|
||||
665600000,
|
||||
800000000,
|
||||
1065600000,
|
||||
1331200000,
|
||||
1600000000,
|
||||
// 1728000000,
|
||||
// 1795200000,
|
||||
@@ -29,7 +30,7 @@ uint32_t sysclk_g_freq_table_mem_hz[] = {
|
||||
0,
|
||||
};
|
||||
|
||||
uint32_t sysclk_g_freq_table_cpu_hz[] = {
|
||||
uint32_t g_freq_table_cpu_hz[] = {
|
||||
612000000,
|
||||
714000000,
|
||||
816000000,
|
||||
@@ -51,7 +52,7 @@ uint32_t sysclk_g_freq_table_cpu_hz[] = {
|
||||
0,
|
||||
};
|
||||
|
||||
uint32_t sysclk_g_freq_table_gpu_hz[] = {
|
||||
uint32_t g_freq_table_gpu_hz[] = {
|
||||
76800000,
|
||||
153600000,
|
||||
230400000,
|
||||
@@ -72,3 +73,16 @@ uint32_t sysclk_g_freq_table_gpu_hz[] = {
|
||||
1305600000,
|
||||
0,
|
||||
};
|
||||
|
||||
uint32_t* GetTable(SysClkModule module) {
|
||||
switch (module) {
|
||||
case SysClkModule_CPU:
|
||||
return &g_freq_table_cpu_hz[0];
|
||||
case SysClkModule_GPU:
|
||||
return &g_freq_table_gpu_hz[0];
|
||||
case SysClkModule_MEM:
|
||||
return &g_freq_table_mem_hz[0];
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user