arm: perf: make of_pmu_irq_cfg take arm_pmu
authorMark Rutland <mark.rutland@arm.com>
Wed, 13 May 2015 16:12:24 +0000 (17:12 +0100)
committerWill Deacon <will.deacon@arm.com>
Wed, 27 May 2015 15:12:36 +0000 (16:12 +0100)
To support multiple PMUs we'll need to pass the arm_pmu instance around.
Update of_pmu_irq_cfg to take an arm_pmu, and acquire the platform
device from this.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/perf_event_cpu.c

index 91c7ba182dcdd9b9e84ce8f5222181b32922deaf..2a9003ef6db3d8de0c5df58a6bbefc3a122c32b2 100644 (file)
@@ -301,9 +301,10 @@ static int probe_current_pmu(struct arm_pmu *pmu)
        return ret;
 }
 
-static int of_pmu_irq_cfg(struct platform_device *pdev)
+static int of_pmu_irq_cfg(struct arm_pmu *pmu)
 {
        int i;
+       struct platform_device *pdev = pmu->plat_device;
        int *irqs = kcalloc(pdev->num_resources, sizeof(*irqs), GFP_KERNEL);
 
        if (!irqs)
@@ -336,7 +337,7 @@ static int of_pmu_irq_cfg(struct platform_device *pdev)
        }
 
        if (i == pdev->num_resources)
-               cpu_pmu->irq_affinity = irqs;
+               pmu->irq_affinity = irqs;
        else
                kfree(irqs);
 
@@ -368,7 +369,7 @@ static int cpu_pmu_device_probe(struct platform_device *pdev)
        if (node && (of_id = of_match_node(cpu_pmu_of_device_ids, pdev->dev.of_node))) {
                init_fn = of_id->data;
 
-               ret = of_pmu_irq_cfg(pdev);
+               ret = of_pmu_irq_cfg(pmu);
                if (!ret)
                        ret = init_fn(pmu);
        } else {