Commit 1ae08823 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge tag 'linux-cpupower-6.10-rc2' of...

Merge tag 'linux-cpupower-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux into pm-tools

Merge cpupower utility fix for 6.10-rc2 from Shuah Khan:

"This cpupower fixes update for Linux 6.10-rc2 consists of one single
 fix to cpupower's P-State frequency calculation and reporting with
 AMD Family 1Ah+ processors, when using the acpi-cpufreq driver."

* tag 'linux-cpupower-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux:
  tools/power/cpupower: Fix Pstate frequency reporting on AMD Family 1Ah CPUs
parents 1613e604 43cad521
......@@ -41,6 +41,16 @@ union core_pstate {
unsigned res1:31;
unsigned en:1;
} pstatedef;
/* since fam 1Ah: */
struct {
unsigned fid:12;
unsigned res1:2;
unsigned vid:8;
unsigned iddval:8;
unsigned idddiv:2;
unsigned res2:31;
unsigned en:1;
} pstatedef2;
unsigned long long val;
};
......@@ -48,6 +58,10 @@ static int get_did(union core_pstate pstate)
{
int t;
/* Fam 1Ah onward do not use did */
if (cpupower_cpu_info.family >= 0x1A)
return 0;
if (cpupower_cpu_info.caps & CPUPOWER_CAP_AMD_PSTATEDEF)
t = pstate.pstatedef.did;
else if (cpupower_cpu_info.family == 0x12)
......@@ -61,12 +75,18 @@ static int get_did(union core_pstate pstate)
static int get_cof(union core_pstate pstate)
{
int t;
int fid, did, cof;
int fid, did, cof = 0;
did = get_did(pstate);
if (cpupower_cpu_info.caps & CPUPOWER_CAP_AMD_PSTATEDEF) {
fid = pstate.pstatedef.fid;
cof = 200 * fid / did;
if (cpupower_cpu_info.family >= 0x1A) {
fid = pstate.pstatedef2.fid;
if (fid > 0x0f)
cof = (fid * 5);
} else {
fid = pstate.pstatedef.fid;
cof = 200 * fid / did;
}
} else {
t = 0x10;
fid = pstate.pstate.fid;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment