aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/kernel/perf_event.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 9331d5731445..1a2ebbf07fb7 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -60,6 +60,7 @@ static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
60 60
61struct arm_pmu { 61struct arm_pmu {
62 enum arm_perf_pmu_ids id; 62 enum arm_perf_pmu_ids id;
63 enum arm_pmu_type type;
63 cpumask_t active_irqs; 64 cpumask_t active_irqs;
64 const char *name; 65 const char *name;
65 irqreturn_t (*handle_irq)(int irq_num, void *dev); 66 irqreturn_t (*handle_irq)(int irq_num, void *dev);
@@ -396,7 +397,7 @@ armpmu_release_hardware(void)
396 free_irq(irq, NULL); 397 free_irq(irq, NULL);
397 } 398 }
398 399
399 release_pmu(ARM_PMU_DEVICE_CPU); 400 release_pmu(armpmu->type);
400} 401}
401 402
402static int 403static int
@@ -407,7 +408,7 @@ armpmu_reserve_hardware(void)
407 int i, err, irq, irqs; 408 int i, err, irq, irqs;
408 struct platform_device *pmu_device = armpmu->plat_device; 409 struct platform_device *pmu_device = armpmu->plat_device;
409 410
410 err = reserve_pmu(ARM_PMU_DEVICE_CPU); 411 err = reserve_pmu(armpmu->type);
411 if (err) { 412 if (err) {
412 pr_warning("unable to reserve pmu\n"); 413 pr_warning("unable to reserve pmu\n");
413 return err; 414 return err;
@@ -691,6 +692,7 @@ static void __init cpu_pmu_init(struct arm_pmu *armpmu)
691 raw_spin_lock_init(&events->pmu_lock); 692 raw_spin_lock_init(&events->pmu_lock);
692 } 693 }
693 armpmu->get_hw_events = armpmu_get_cpu_events; 694 armpmu->get_hw_events = armpmu_get_cpu_events;
695 armpmu->type = ARM_PMU_DEVICE_CPU;
694} 696}
695 697
696/* 698/*