aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwtracing/coresight/coresight-syscfg.c
diff options
context:
space:
mode:
authorMike Leach <mike.leach@linaro.org>2021-08-18 13:40:19 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-08-18 22:33:28 +0200
commit7fdc9bb2ce113c5318fdacbb717897fede81949d (patch)
treefef93a47a41169ac91ab943966d075d20fa0b60e /drivers/hwtracing/coresight/coresight-syscfg.c
parentcoresight: etm4x: Add complex configuration handlers to etmv4 (diff)
downloadlinux-dev-7fdc9bb2ce113c5318fdacbb717897fede81949d.tar.xz
linux-dev-7fdc9bb2ce113c5318fdacbb717897fede81949d.zip
coresight: config: Add preloaded configurations
Preload set of configurations. This patch creates a small set of preloaded configurations and features that are available immediately after coresight has been initialised. The current set provides a strobing feature for ETMv4, that creates a periodic sampling of trace by switching trace generation on and off using counters in the ETM. A configuration called "autofdo" is also provided that uses the 'strobing' feature and provides a couple of preset values, selectable on the perf command line. Link: https://lore.kernel.org/r/20210723165444.1048-9-mike.leach@linaro.org Signed-off-by: Mike Leach <mike.leach@linaro.org> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/20210818194022.379573-9-mathieu.poirier@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/hwtracing/coresight/coresight-syscfg.c')
-rw-r--r--drivers/hwtracing/coresight/coresight-syscfg.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/hwtracing/coresight/coresight-syscfg.c b/drivers/hwtracing/coresight/coresight-syscfg.c
index 795dba576fea..c0f764d85f20 100644
--- a/drivers/hwtracing/coresight/coresight-syscfg.c
+++ b/drivers/hwtracing/coresight/coresight-syscfg.c
@@ -752,8 +752,17 @@ int __init cscfg_init(void)
INIT_LIST_HEAD(&cscfg_mgr->config_desc_list);
atomic_set(&cscfg_mgr->sys_active_cnt, 0);
+ /* preload built-in configurations */
+ err = cscfg_preload();
+ if (err)
+ goto exit_err;
+
dev_info(cscfg_device(), "CoreSight Configuration manager initialised");
return 0;
+
+exit_err:
+ cscfg_clear_device();
+ return err;
}
void cscfg_exit(void)