xref: /openbmc/linux/tools/perf/arch/arm/util/pmu.c (revision a0c2f92d)
18a9fd832SMathieu Poirier // SPDX-License-Identifier: GPL-2.0
27e21b0d5SMathieu Poirier /*
37e21b0d5SMathieu Poirier  * Copyright(C) 2015 Linaro Limited. All rights reserved.
47e21b0d5SMathieu Poirier  * Author: Mathieu Poirier <mathieu.poirier@linaro.org>
57e21b0d5SMathieu Poirier  */
67e21b0d5SMathieu Poirier 
77e21b0d5SMathieu Poirier #include <string.h>
87e21b0d5SMathieu Poirier #include <linux/coresight-pmu.h>
97e21b0d5SMathieu Poirier #include <linux/perf_event.h>
10af1db7f6SArnaldo Carvalho de Melo #include <linux/string.h>
117e21b0d5SMathieu Poirier 
12ffd3d18cSKim Phillips #include "arm-spe.h"
13057381a7SQi Liu #include "hisi-ptt.h"
14c6613bd4SIan Rogers #include "../../../util/pmu.h"
15*a0c2f92dSIan Rogers #include "../../../util/cs-etm.h"
167e21b0d5SMathieu Poirier 
177e21b0d5SMathieu Poirier struct perf_event_attr
perf_pmu__get_default_config(struct perf_pmu * pmu __maybe_unused)187e21b0d5SMathieu Poirier *perf_pmu__get_default_config(struct perf_pmu *pmu __maybe_unused)
197e21b0d5SMathieu Poirier {
207e21b0d5SMathieu Poirier #ifdef HAVE_AUXTRACE_SUPPORT
217e21b0d5SMathieu Poirier 	if (!strcmp(pmu->name, CORESIGHT_ETM_PMU_NAME)) {
227e21b0d5SMathieu Poirier 		/* add ETM default config here */
237e21b0d5SMathieu Poirier 		pmu->selectable = true;
247bfc1544SJames Clark 		return cs_etm_get_default_config(pmu);
25ffd3d18cSKim Phillips #if defined(__aarch64__)
26ffd3d18cSKim Phillips 	} else if (strstarts(pmu->name, ARM_SPE_PMU_NAME)) {
27ffd3d18cSKim Phillips 		return arm_spe_pmu_default_config(pmu);
28057381a7SQi Liu 	} else if (strstarts(pmu->name, HISI_PTT_PMU_NAME)) {
29057381a7SQi Liu 		pmu->selectable = true;
30ffd3d18cSKim Phillips #endif
317e21b0d5SMathieu Poirier 	}
32ffd3d18cSKim Phillips 
337e21b0d5SMathieu Poirier #endif
347e21b0d5SMathieu Poirier 	return NULL;
357e21b0d5SMathieu Poirier }
36