1 /* 2 * Copyright(C) 2015 Linaro Limited. All rights reserved. 3 * Author: Mathieu Poirier <mathieu.poirier@linaro.org> 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 as published by 7 * the Free Software Foundation. 8 * 9 * This program is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 * more details. 13 * 14 * You should have received a copy of the GNU General Public License along with 15 * this program. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #include <string.h> 19 #include <linux/coresight-pmu.h> 20 #include <linux/perf_event.h> 21 22 #include "cs-etm.h" 23 #include "arm-spe.h" 24 #include "../../util/pmu.h" 25 26 struct perf_event_attr 27 *perf_pmu__get_default_config(struct perf_pmu *pmu __maybe_unused) 28 { 29 #ifdef HAVE_AUXTRACE_SUPPORT 30 if (!strcmp(pmu->name, CORESIGHT_ETM_PMU_NAME)) { 31 /* add ETM default config here */ 32 pmu->selectable = true; 33 pmu->set_drv_config = cs_etm_set_drv_config; 34 #if defined(__aarch64__) 35 } else if (strstarts(pmu->name, ARM_SPE_PMU_NAME)) { 36 return arm_spe_pmu_default_config(pmu); 37 #endif 38 } 39 40 #endif 41 return NULL; 42 } 43