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*7bfc1544SJames Clark #include "../cs-etm.h" 167e21b0d5SMathieu Poirier 177e21b0d5SMathieu Poirier struct perf_event_attr 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; 24*7bfc1544SJames 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