[PATCH v8 06/21] drivers/perf: apple_m1: Support per-implementation PMU startup

From: Nick Chan
Date: Mon Aug 11 2025 - 09:58:12 EST


Support for implementations that deliver its interrupts in ways other than
FIQ will be added, which requires a per-implementation startup function.

Signed-off-by: Nick Chan <towinchenmi@xxxxxxxxx>
---
drivers/perf/apple_m1_cpu_pmu.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pmu.c
index fb2759069fe9e47146f0342fa46e40f3ab836926..303c0e62432281e899a33fc197365c70078d6ac1 100644
--- a/drivers/perf/apple_m1_cpu_pmu.c
+++ b/drivers/perf/apple_m1_cpu_pmu.c
@@ -659,7 +659,6 @@ static int apple_pmu_init(struct arm_pmu *cpu_pmu, u32 counters)
cpu_pmu->read_counter = m1_pmu_read_counter;
cpu_pmu->write_counter = m1_pmu_write_counter;
cpu_pmu->clear_event_idx = m1_pmu_clear_event_idx;
- cpu_pmu->start = m1_pmu_start;
cpu_pmu->stop = m1_pmu_stop;
cpu_pmu->set_event_filter = m1_pmu_set_event_filter;

@@ -681,6 +680,7 @@ static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu)
cpu_pmu->get_event_idx = m1_pmu_get_event_idx;
cpu_pmu->map_event = m1_pmu_map_event;
cpu_pmu->reset = m1_pmu_reset;
+ cpu_pmu->start = m1_pmu_start;
return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS);
}

@@ -690,6 +690,7 @@ static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu)
cpu_pmu->get_event_idx = m1_pmu_get_event_idx;
cpu_pmu->map_event = m1_pmu_map_event;
cpu_pmu->reset = m1_pmu_reset;
+ cpu_pmu->start = m1_pmu_start;
return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS);
}

@@ -699,6 +700,7 @@ static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pmu)
cpu_pmu->get_event_idx = m1_pmu_get_event_idx;
cpu_pmu->map_event = m2_pmu_map_event;
cpu_pmu->reset = m1_pmu_reset;
+ cpu_pmu->start = m1_pmu_start;
return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS);
}

@@ -708,6 +710,7 @@ static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu)
cpu_pmu->get_event_idx = m1_pmu_get_event_idx;
cpu_pmu->map_event = m2_pmu_map_event;
cpu_pmu->reset = m1_pmu_reset;
+ cpu_pmu->start = m1_pmu_start;
return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS);
}


--
2.50.1