ARM: 8054/1: perf: add support for the Cortex-A17 PMU
authorWill Deacon <will.deacon@arm.com>
Fri, 9 May 2014 17:34:19 +0000 (18:34 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 25 May 2014 22:49:43 +0000 (23:49 +0100)
The Cortex-A17 PMU is identical to that of the A12, so wire up a new
compatible string to the existing event structures.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Documentation/devicetree/bindings/arm/pmu.txt
arch/arm/kernel/perf_event_cpu.c
arch/arm/kernel/perf_event_v7.c

index fe5cef8976cb0724833b292ab17d25fa779423c5..75ef91d08f3bd2cbc402326598ead0e34663e790 100644 (file)
@@ -8,6 +8,7 @@ Required properties:
 
 - compatible : should be one of
        "arm,armv8-pmuv3"
+       "arm,cortex-a17-pmu"
        "arm,cortex-a15-pmu"
        "arm,cortex-a12-pmu"
        "arm,cortex-a9-pmu"
index 51798d7854aca9b9109abba97c1cc22a6efc5a33..a71ae1523620afc4cd149c26092d16d69cd858d8 100644 (file)
@@ -221,6 +221,7 @@ static struct notifier_block cpu_pmu_hotplug_notifier = {
  * PMU platform driver and devicetree bindings.
  */
 static struct of_device_id cpu_pmu_of_device_ids[] = {
+       {.compatible = "arm,cortex-a17-pmu",    .data = armv7_a17_pmu_init},
        {.compatible = "arm,cortex-a15-pmu",    .data = armv7_a15_pmu_init},
        {.compatible = "arm,cortex-a12-pmu",    .data = armv7_a12_pmu_init},
        {.compatible = "arm,cortex-a9-pmu",     .data = armv7_a9_pmu_init},
index f4ef3981ed0293a6ebcc887cf3428e8c848294ca..2037f72059874260558cbcb205848349ce6765a4 100644 (file)
@@ -1599,6 +1599,13 @@ static int armv7_a12_pmu_init(struct arm_pmu *cpu_pmu)
        return 0;
 }
 
+static int armv7_a17_pmu_init(struct arm_pmu *cpu_pmu)
+{
+       armv7_a12_pmu_init(cpu_pmu);
+       cpu_pmu->name = "ARMv7 Cortex-A17";
+       return 0;
+}
+
 /*
  * Krait Performance Monitor Region Event Selection Register (PMRESRn)
  *
@@ -2021,6 +2028,11 @@ static inline int armv7_a12_pmu_init(struct arm_pmu *cpu_pmu)
        return -ENODEV;
 }
 
+static inline int armv7_a17_pmu_init(struct arm_pmu *cpu_pmu)
+{
+       return -ENODEV;
+}
+
 static inline int krait_pmu_init(struct arm_pmu *cpu_pmu)
 {
        return -ENODEV;