1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright(C) 2020 Linaro Limited. All rights reserved.
4 * Author: Mike Leach <mike.leach@linaro.org>
7 #include "coresight-config.h"
8 #include "coresight-syscfg.h"
10 /* create an alternate autofdo configuration */
12 /* we will provide 4 sets of preset parameter values */
13 #define AFDO2_NR_PRESETS 4
14 /* the total number of parameters in used features - strobing has 2 */
15 #define AFDO2_NR_PARAM_SUM 2
17 static const char *afdo2_ref_names
[] = {
22 * set of presets leaves strobing window constant while varying period to allow
23 * experimentation with mark / space ratios for various workloads
25 static u64 afdo2_presets
[AFDO2_NR_PRESETS
][AFDO2_NR_PARAM_SUM
] = {
32 struct cscfg_config_desc afdo2
= {
34 .description
= "Setup ETMs with strobing for autofdo\n"
35 "Supplied presets allow experimentation with mark-space ratio for various loads\n",
36 .nr_feat_refs
= ARRAY_SIZE(afdo2_ref_names
),
37 .feat_ref_names
= afdo2_ref_names
,
38 .nr_presets
= AFDO2_NR_PRESETS
,
39 .nr_total_params
= AFDO2_NR_PARAM_SUM
,
40 .presets
= &afdo2_presets
[0][0],
43 static struct cscfg_feature_desc
*sample_feats
[] = {
47 static struct cscfg_config_desc
*sample_cfgs
[] = {
52 static struct cscfg_load_owner_info mod_owner
= {
53 .type
= CSCFG_OWNER_MODULE
,
54 .owner_handle
= THIS_MODULE
,
57 /* module init and exit - just load and unload configs */
58 static int __init
cscfg_sample_init(void)
60 return cscfg_load_config_sets(sample_cfgs
, sample_feats
, &mod_owner
);
63 static void __exit
cscfg_sample_exit(void)
65 cscfg_unload_config_sets(&mod_owner
);
68 module_init(cscfg_sample_init
);
69 module_exit(cscfg_sample_exit
);
71 MODULE_LICENSE("GPL v2");
72 MODULE_AUTHOR("Mike Leach <mike.leach@linaro.org>");
73 MODULE_DESCRIPTION("CoreSight Syscfg Example");