xref: /linux/drivers/hwtracing/coresight/coresight-cfg-preload.c (revision 5e0266f0e5f57617472d5aac4013f58a3ef264ac)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright(C) 2020 Linaro Limited. All rights reserved.
4  * Author: Mike Leach <mike.leach@linaro.org>
5  */
6 
7 #include "coresight-cfg-preload.h"
8 #include "coresight-config.h"
9 #include "coresight-syscfg.h"
10 
11 /* Basic features and configurations pre-loaded on initialisation */
12 
13 static struct cscfg_feature_desc *preload_feats[] = {
14 #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X)
15 	&strobe_etm4x,
16 #endif
17 	NULL
18 };
19 
20 static struct cscfg_config_desc *preload_cfgs[] = {
21 #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X)
22 	&afdo_etm4x,
23 #endif
24 	NULL
25 };
26 
27 static struct cscfg_load_owner_info preload_owner = {
28 	.type = CSCFG_OWNER_PRELOAD,
29 };
30 
31 /* preload called on initialisation */
32 int cscfg_preload(void *owner_handle)
33 {
34 	preload_owner.owner_handle = owner_handle;
35 	return cscfg_load_config_sets(preload_cfgs, preload_feats, &preload_owner);
36 }
37