From 63e02e96940bbb81e5a379c13747fd8c351020a2 Mon Sep 17 00:00:00 2001 From: Biao Long Date: Wed, 20 Jun 2018 17:33:16 +0800 Subject: [PATCH] Perf: Enable pmuv3 on 32 bit kernel Add mechanism to detect and enable pmuv3 on 32 bit kernel. Change-Id: I56e0c5a0bb2dbc2dc1445fb578782ec5e8c98def Signed-off-by: Sheetal Sahasrabudhe Signed-off-by: Biao Long --- arch/arm/kernel/perf_event_v7.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index bf1dcfa92895..7ec532330ce0 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel/perf_event_v7.c @@ -1301,6 +1301,16 @@ static int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) return armv7_probe_pmu(cpu_pmu); } +static int armv8_pmuv3_pmu_init(struct arm_pmu *cpu_pmu) +{ + armv7pmu_init(cpu_pmu); + cpu_pmu->name = "ARMv8 Cortex-A53"; + cpu_pmu->map_event = armv7_a7_map_event; + armv7_read_num_pmnc_events(&cpu_pmu->num_events); + cpu_pmu->set_event_filter = armv7pmu_set_event_filter; + return 0; +} + static int armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) { armv7pmu_init(cpu_pmu); @@ -2073,6 +2083,7 @@ static const struct of_device_id armv7_pmu_of_device_ids[] = { {.compatible = "qcom,krait-pmu", .data = krait_pmu_init}, {.compatible = "qcom,scorpion-pmu", .data = scorpion_pmu_init}, {.compatible = "qcom,scorpion-mp-pmu", .data = scorpion_mp_pmu_init}, + {.compatible = "arm,armv8-pmuv3", .data = armv8_pmuv3_pmu_init}, {}, };