Skip to content

Commit deee601

Browse files
cyringCyrIng
authored andcommitted
[CPPC] Provides the ACPI _CPC object state.
1 parent 8ae2feb commit deee601

File tree

7 files changed

+21
-2
lines changed

7 files changed

+21
-2
lines changed

corefreq-cli-rsc-en.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,6 +1171,7 @@
11711171
#define RSC_PERF_MON_VID_CODE_EN "Legacy Voltage ID control"
11721172
#define RSC_PERF_MON_HWCF_CODE_EN "P-State Hardware Coordination Feedback"
11731173
#define RSC_PERF_MON_CPPC_CODE_EN "Collaborative Processor Performance Control"
1174+
#define RSC_PERF_MON_CPC_CODE_EN "Continuous Performance Control"
11741175
#define RSC_PERF_MON_HWP_CODE_EN "Hardware-Controlled Performance States"
11751176
#define RSC_PERF_MON_HDC_CODE_EN "Hardware Duty Cycling"
11761177
#define RSC_PERF_MON_PKG_CSTATE_CODE_EN "Package C-States"
@@ -2237,6 +2238,7 @@
22372238
#define RSC_PERF_LABEL_VID_CODE "VID"
22382239
#define RSC_PERF_LABEL_HWCF_CODE "MPERF/APERF"
22392240
#define RSC_PERF_LABEL_CPPC_CODE "CPPC"
2241+
#define RSC_PERF_LABEL_CPC_CODE "_CPC"
22402242
#define RSC_PERF_LABEL_HWP_CODE "HWP"
22412243
#define RSC_PERF_LABEL_HDC_CODE "HDC"
22422244
#define RSC_PERF_LABEL_CFG_CTRL_CODE "CONFIG"

corefreq-cli-rsc-fr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,7 @@ do echo -en "$h$l\t""\xc3""\x$h$l""\t"; done; done;echo
650650
#define RSC_PERF_MON_VID_CODE_FR "Legacy Voltage ID control"
651651
#define RSC_PERF_MON_HWCF_CODE_FR "P-State Hardware Coordination Feedback"
652652
#define RSC_PERF_MON_CPPC_CODE_FR "Collaborative Processor Performance Control"
653+
#define RSC_PERF_MON_CPC_CODE_FR RSC_PERF_MON_CPC_CODE_EN
653654
#define RSC_PERF_MON_HWP_CODE_FR "Hardware-Controlled Performance States"
654655
#define RSC_PERF_MON_HDC_CODE_FR "Hardware Duty Cycling"
655656
#define RSC_PERF_MON_PKG_CSTATE_CODE_FR "Package C-States"

corefreq-cli-rsc.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,7 @@ RESOURCE_ST Resource[] = {
10081008
LDT(RSC_PERF_MON_VID),
10091009
LDT(RSC_PERF_MON_HWCF),
10101010
LDT(RSC_PERF_MON_CPPC),
1011+
LDT(RSC_PERF_MON_CPC),
10111012
LDT(RSC_PERF_MON_HWP),
10121013
LDT(RSC_PERF_MON_HDC),
10131014
LDT(RSC_PERF_MON_PKG_CSTATE),
@@ -1047,6 +1048,7 @@ RESOURCE_ST Resource[] = {
10471048
LDQ(RSC_PERF_LABEL_VID),
10481049
LDQ(RSC_PERF_LABEL_HWCF),
10491050
LDQ(RSC_PERF_LABEL_CPPC),
1051+
LDQ(RSC_PERF_LABEL_CPC),
10501052
LDQ(RSC_PERF_LABEL_HWP),
10511053
LDQ(RSC_PERF_LABEL_HDC),
10521054
LDQ(RSC_PERF_LABEL_CFG_CTRL),

corefreq-cli-rsc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -811,6 +811,7 @@ enum {
811811
RSC_PERF_MON_VID,
812812
RSC_PERF_MON_HWCF,
813813
RSC_PERF_MON_CPPC,
814+
RSC_PERF_MON_CPC,
814815
RSC_PERF_MON_HWP,
815816
RSC_PERF_MON_HDC,
816817
RSC_PERF_MON_PKG_CSTATE,
@@ -850,6 +851,7 @@ enum {
850851
RSC_PERF_LABEL_VID,
851852
RSC_PERF_LABEL_HWCF,
852853
RSC_PERF_LABEL_CPPC,
854+
RSC_PERF_LABEL_CPC,
853855
RSC_PERF_LABEL_HWP,
854856
RSC_PERF_LABEL_HDC,
855857
RSC_PERF_LABEL_CFG_CTRL,

corefreq-cli.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4080,6 +4080,15 @@ REASON_CODE SysInfoPerfMon(Window *win, CUINT width, CELL_FUNC OutFunc)
40804080
width - 26 - RSZ(PERF_MON_HWCF), hSpace,
40814081
RSC(PERF_LABEL_HWCF).CODE(), ENABLED(bix) );
40824082
/* Section Mark */
4083+
if ( (RO(Shm)->Proc.Features.Info.Vendor.CRC == CRC_AMD)
4084+
|| (RO(Shm)->Proc.Features.Info.Vendor.CRC == CRC_HYGON) )
4085+
{
4086+
PUT(SCANKEY_NULL, attrib[RO(Shm)->Proc.Features.OSPM_CPC], width, 2,
4087+
"%s%.*s%s <%3s>", RSC(PERF_MON_CPC).CODE(),
4088+
width - 19 - RSZ(PERF_MON_CPC), hSpace,
4089+
RSC(PERF_LABEL_CPC).CODE(),
4090+
ENABLED(RO(Shm)->Proc.Features.OSPM_CPC));
4091+
}
40834092
bix = (RO(Shm)->Proc.Features.Power.EAX.HWP_Reg == 1) /* Intel:HWP */
40844093
|| (RO(Shm)->Proc.Features.leaf80000008.EBX.CPPC == 1) /* AMD:CPPC */
40854094
|| (RO(Shm)->Proc.Features.ACPI_CPPC == 1); /* ACPI:CPPC */

corefreqk.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3877,8 +3877,10 @@ void For_All_ACPI_CPPC(signed int(*CPPC_Func)(unsigned int, void*), void *arg)
38773877
#else
38783878
signed int rc = acpi_disabled;
38793879
#endif
3880-
38813880
unsigned int cpu;
3881+
3882+
PUBLIC(RO(Proc))->Features.OSPM_CPC = !rc;
3883+
38823884
for (cpu = 0; (cpu < PUBLIC(RO(Proc))->CPU.Count) && (rc == 0); cpu++)
38833885
{
38843886
rc = CPPC_Func(cpu, arg);

coretypes.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1950,7 +1950,8 @@ typedef struct /* BSP CPUID features. */
19501950
HSMP_Enable : 38-37,
19511951
XtraCOF : 40-38, /* 1:CPB ; 2:{CPB and XFR} */
19521952
ACPI_CPPC : 41-40,
1953-
_pad64 : 64-41;
1953+
OSPM_CPC : 42-41,
1954+
_pad64 : 64-42;
19541955
};
19551956
} FEATURES;
19561957

0 commit comments

Comments
 (0)