Commit f642089c authored by Thomas Renninger's avatar Thomas Renninger Committed by Dominik Brodowski

cpupower: AMD fam14h/Ontario monitor can also be used by fam12h cpus

The name of the monitor is updated at runtime to the name of the
CPU type.
Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
CC: Andreas Herrmann <herrmann.der.user@googlemail.com>
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent 568a8990
...@@ -107,7 +107,7 @@ Deepest package sleep states may in reality show up as machine/platform wide ...@@ -107,7 +107,7 @@ Deepest package sleep states may in reality show up as machine/platform wide
sleep states and can only be entered if all cores are idle. Look up Intel sleep states and can only be entered if all cores are idle. Look up Intel
manuals (some are provided in the References section) for further details. manuals (some are provided in the References section) for further details.
.SS "Ontario" "Liano" .SS "Fam_12h" "Fam_14h"
AMD laptop and desktop processor (family 12h and 14h) sleep state counters. AMD laptop and desktop processor (family 12h and 14h) sleep state counters.
The registers are accessed via PCI and therefore can still be read out while The registers are accessed via PCI and therefore can still be read out while
cores have been offlined. cores have been offlined.
......
...@@ -281,13 +281,13 @@ struct cpuidle_monitor *amd_fam14h_register(void) ...@@ -281,13 +281,13 @@ struct cpuidle_monitor *amd_fam14h_register(void)
if (cpupower_cpu_info.vendor != X86_VENDOR_AMD) if (cpupower_cpu_info.vendor != X86_VENDOR_AMD)
return NULL; return NULL;
if (cpupower_cpu_info.family == 0x14) { if (cpupower_cpu_info.family == 0x14)
if (cpu_count <= 0 || cpu_count > 2) { strncpy(amd_fam14h_monitor.name, "Fam_14h",
fprintf(stderr, "AMD fam14h: Invalid cpu count: %d\n", MONITOR_NAME_LEN - 1);
cpu_count); else if (cpupower_cpu_info.family == 0x12)
return NULL; strncpy(amd_fam14h_monitor.name, "Fam_12h",
} MONITOR_NAME_LEN - 1);
} else else
return NULL; return NULL;
/* We do not alloc for nbp1 machine wide counter */ /* We do not alloc for nbp1 machine wide counter */
...@@ -322,7 +322,7 @@ static void amd_fam14h_unregister(void) ...@@ -322,7 +322,7 @@ static void amd_fam14h_unregister(void)
} }
struct cpuidle_monitor amd_fam14h_monitor = { struct cpuidle_monitor amd_fam14h_monitor = {
.name = "Ontario", .name = "",
.hw_states = amd_fam14h_cstates, .hw_states = amd_fam14h_cstates,
.hw_states_num = AMD_FAM14H_STATE_NUM, .hw_states_num = AMD_FAM14H_STATE_NUM,
.start = amd_fam14h_start, .start = amd_fam14h_start,
......
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