OSDN Git Service

arm64: perf: Support Denver and Carmel PMUs
authorThierry Reding <treding@nvidia.com>
Tue, 14 Dec 2021 14:16:13 +0000 (14:16 +0000)
committerWill Deacon <will@kernel.org>
Tue, 14 Dec 2021 18:05:11 +0000 (18:05 +0000)
Add support for the NVIDIA Denver and Carmel PMUs using the generic
PMUv3 event map for now.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
[ rm: reorder entries alphabetically ]
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/5f0f69d47acca78a9e479501aa4d8b429e23cf11.1639490264.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/perf_event.c

index b404446..035da52 100644 (file)
@@ -1247,6 +1247,18 @@ static int armv8_vulcan_pmu_init(struct arm_pmu *cpu_pmu)
                                       armv8_vulcan_map_event);
 }
 
+static int armv8_carmel_pmu_init(struct arm_pmu *cpu_pmu)
+{
+       return armv8_pmu_init_nogroups(cpu_pmu, "armv8_nvidia_carmel",
+                                      armv8_pmuv3_map_event);
+}
+
+static int armv8_denver_pmu_init(struct arm_pmu *cpu_pmu)
+{
+       return armv8_pmu_init_nogroups(cpu_pmu, "armv8_nvidia_denver",
+                                      armv8_pmuv3_map_event);
+}
+
 static const struct of_device_id armv8_pmu_of_device_ids[] = {
        {.compatible = "arm,armv8-pmuv3",       .data = armv8_pmuv3_init},
        {.compatible = "arm,cortex-a34-pmu",    .data = armv8_a34_pmu_init},
@@ -1265,6 +1277,8 @@ static const struct of_device_id armv8_pmu_of_device_ids[] = {
        {.compatible = "arm,neoverse-n1-pmu",   .data = armv8_n1_pmu_init},
        {.compatible = "cavium,thunder-pmu",    .data = armv8_thunder_pmu_init},
        {.compatible = "brcm,vulcan-pmu",       .data = armv8_vulcan_pmu_init},
+       {.compatible = "nvidia,carmel-pmu",     .data = armv8_carmel_pmu_init},
+       {.compatible = "nvidia,denver-pmu",     .data = armv8_denver_pmu_init},
        {},
 };