18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright(C) 2015 Linaro Limited. All rights reserved.
48c2ecf20Sopenharmony_ci * Author: Mathieu Poirier <mathieu.poirier@linaro.org>
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#include <string.h>
88c2ecf20Sopenharmony_ci#include <linux/coresight-pmu.h>
98c2ecf20Sopenharmony_ci#include <linux/perf_event.h>
108c2ecf20Sopenharmony_ci#include <linux/string.h>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include "arm-spe.h"
138c2ecf20Sopenharmony_ci#include "../../util/pmu.h"
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistruct perf_event_attr
168c2ecf20Sopenharmony_ci*perf_pmu__get_default_config(struct perf_pmu *pmu __maybe_unused)
178c2ecf20Sopenharmony_ci{
188c2ecf20Sopenharmony_ci#ifdef HAVE_AUXTRACE_SUPPORT
198c2ecf20Sopenharmony_ci	if (!strcmp(pmu->name, CORESIGHT_ETM_PMU_NAME)) {
208c2ecf20Sopenharmony_ci		/* add ETM default config here */
218c2ecf20Sopenharmony_ci		pmu->selectable = true;
228c2ecf20Sopenharmony_ci#if defined(__aarch64__)
238c2ecf20Sopenharmony_ci	} else if (strstarts(pmu->name, ARM_SPE_PMU_NAME)) {
248c2ecf20Sopenharmony_ci		return arm_spe_pmu_default_config(pmu);
258c2ecf20Sopenharmony_ci#endif
268c2ecf20Sopenharmony_ci	}
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci#endif
298c2ecf20Sopenharmony_ci	return NULL;
308c2ecf20Sopenharmony_ci}
31