aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/power7-pmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/power7-pmu.c')
-rw-r--r--arch/powerpc/kernel/power7-pmu.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/power7-pmu.c b/arch/powerpc/kernel/power7-pmu.c
index 658d1ae436a0..5d755ef7ac8f 100644
--- a/arch/powerpc/kernel/power7-pmu.c
+++ b/arch/powerpc/kernel/power7-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for POWER7 18 * Bits in event code for POWER7
@@ -346,7 +348,8 @@ static int power7_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
346 }, 348 },
347}; 349};
348 350
349struct power_pmu power7_pmu = { 351static struct power_pmu power7_pmu = {
352 .name = "POWER7",
350 .n_counter = 6, 353 .n_counter = 6,
351 .max_alternatives = MAX_ALT + 1, 354 .max_alternatives = MAX_ALT + 1,
352 .add_fields = 0x1555ul, 355 .add_fields = 0x1555ul,
@@ -359,3 +362,13 @@ struct power_pmu power7_pmu = {
359 .generic_events = power7_generic_events, 362 .generic_events = power7_generic_events,
360 .cache_events = &power7_cache_events, 363 .cache_events = &power7_cache_events,
361}; 364};
365
366static int init_power7_pmu(void)
367{
368 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power7"))
369 return -ENODEV;
370
371 return register_power_pmu(&power7_pmu);
372}
373
374arch_initcall(init_power7_pmu);