The PMU itself is compatible with the one found on M1. We still know
next to nothing about the counters so keep using CPU uarch specific
compatibles/PMU names.
Signed-off-by: Janne Grunau <j@jannau.net>
---
drivers/perf/apple_m1_cpu_pmu.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pmu.c
index 979a7c2b4f56..83b74c7fe63f 100644
--- a/drivers/perf/apple_m1_cpu_pmu.c
+++ b/drivers/perf/apple_m1_cpu_pmu.c
@@ -559,7 +559,21 @@ static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu)
return m1_pmu_init(cpu_pmu);
}
+static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pmu)
+{
+ cpu_pmu->name = "apple_avalanche_pmu";
+ return m1_pmu_init(cpu_pmu);
+}
+
+static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu)
+{
+ cpu_pmu->name = "apple_blizzard_pmu";
+ return m1_pmu_init(cpu_pmu);
+}
+
static const struct of_device_id m1_pmu_of_device_ids[] = {
+ { .compatible = "apple,avalanche-pmu", .data = m2_pmu_avalanche_init, },
+ { .compatible = "apple,blizzard-pmu", .data = m2_pmu_blizzard_init, },
{ .compatible = "apple,icestorm-pmu", .data = m1_pmu_ice_init, },
{ .compatible = "apple,firestorm-pmu", .data = m1_pmu_fire_init, },
{ },
--
2.39.1
On Tue, Feb 14, 2023 at 11:38:02AM +0100, Janne Grunau wrote: > The PMU itself is compatible with the one found on M1. We still know > next to nothing about the counters so keep using CPU uarch specific > compatibles/PMU names. > > Signed-off-by: Janne Grunau <j@jannau.net> Acked-by: Mark Rutland <mark.rutland@arm.com. Will, I assume that you'll pick this up. > --- > drivers/perf/apple_m1_cpu_pmu.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pmu.c > index 979a7c2b4f56..83b74c7fe63f 100644 > --- a/drivers/perf/apple_m1_cpu_pmu.c > +++ b/drivers/perf/apple_m1_cpu_pmu.c > @@ -559,7 +559,21 @@ static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu) > return m1_pmu_init(cpu_pmu); > } > > +static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pmu) > +{ > + cpu_pmu->name = "apple_avalanche_pmu"; > + return m1_pmu_init(cpu_pmu); > +} > + > +static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu) > +{ > + cpu_pmu->name = "apple_blizzard_pmu"; > + return m1_pmu_init(cpu_pmu); > +} > + > static const struct of_device_id m1_pmu_of_device_ids[] = { > + { .compatible = "apple,avalanche-pmu", .data = m2_pmu_avalanche_init, }, > + { .compatible = "apple,blizzard-pmu", .data = m2_pmu_blizzard_init, }, > { .compatible = "apple,icestorm-pmu", .data = m1_pmu_ice_init, }, > { .compatible = "apple,firestorm-pmu", .data = m1_pmu_fire_init, }, > { }, > > -- > 2.39.1 >
© 2016 - 2025 Red Hat, Inc.