From: Mian Yousaf Kaukab <ykaukab@suse.de> To: linux-arm-kernel@lists.infradead.org, mathieu.poirier@linaro.org Cc: alexander.shishkin@linux.intel.com, paul.gortmaker@windriver.com, Mian Yousaf Kaukab <ykaukab@suse.de>, linux-kernel@vger.kernel.org, suzuki.poulose@arm.com Subject: [PATCH RFC 06/15] coresight: combine bus and PMU init calls Date: Fri, 17 Jan 2020 15:40:01 +0100 Message-ID: <20200117144010.11149-7-ykaukab@suse.de> (raw) In-Reply-To: <20200117144010.11149-1-ykaukab@suse.de> There is no need to initialize coresight bus at postcore level since coresight API is private now. Moreover, call etm_perf_init() from coresight_init() to combine bus and PMU into a single module. There are circular dependencies between them. Signed-off-by: Mian Yousaf Kaukab <ykaukab@suse.de> --- drivers/hwtracing/coresight/coresight-bus.c | 41 ++++++++++++++++++------ drivers/hwtracing/coresight/coresight-etm-perf.c | 3 +- drivers/hwtracing/coresight/coresight-etm-perf.h | 2 ++ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-bus.c b/drivers/hwtracing/coresight/coresight-bus.c index ef20f74c85fa..c2eaeeea98cd 100644 --- a/drivers/hwtracing/coresight/coresight-bus.c +++ b/drivers/hwtracing/coresight/coresight-bus.c @@ -1142,16 +1142,6 @@ int coresight_timeout(void __iomem *addr, u32 offset, int position, int value) return -EAGAIN; } -struct bus_type coresight_bustype = { - .name = "coresight", -}; - -static int __init coresight_init(void) -{ - return bus_register(&coresight_bustype); -} -postcore_initcall(coresight_init); - /* * coresight_release_platform_data: Release references to the devices connected * to the output port of this device. @@ -1336,3 +1326,34 @@ char *coresight_alloc_device_name(struct coresight_dev_list *dict, return name; } EXPORT_SYMBOL_GPL(coresight_alloc_device_name); + +struct bus_type coresight_bustype = { + .name = "coresight", +}; + +static int __init coresight_init(void) +{ + int ret; + + ret = bus_register(&coresight_bustype); + if (ret) + return ret; + + ret = etm_perf_init(); + if (ret) + bus_unregister(&coresight_bustype); + + return ret; +} + +static void __exit coresight_exit(void) +{ + /* TODO: perf_pmu_unregister() */ + bus_unregister(&coresight_bustype); +} + +module_init(coresight_init); +module_exit(coresight_exit); + +MODULE_DESCRIPTION("Coresight bus and pmu driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c index 84f1dcb69827..1bd71c2f6802 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -579,7 +579,7 @@ void etm_perf_del_symlink_sink(struct coresight_device *csdev) csdev->ea = NULL; } -static int __init etm_perf_init(void) +int __init etm_perf_init(void) { int ret; @@ -606,4 +606,3 @@ static int __init etm_perf_init(void) return ret; } -device_initcall(etm_perf_init); diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.h b/drivers/hwtracing/coresight/coresight-etm-perf.h index 015213abe00a..4b1c1f55fb46 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.h +++ b/drivers/hwtracing/coresight/coresight-etm-perf.h @@ -82,4 +82,6 @@ static inline void *etm_perf_sink_config(struct perf_output_handle *handle) #endif /* CONFIG_CORESIGHT */ +int __init etm_perf_init(void); + #endif -- 2.16.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply index Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-17 14:39 [PATCH RFC 00/15] coresight: make drivers modular Mian Yousaf Kaukab 2020-01-17 14:39 ` [PATCH RFC 01/15] Revert "drivers/hwtracing: make coresight-* explicitly non-modular" Mian Yousaf Kaukab 2020-01-17 14:39 ` [PATCH RFC 02/15] coresight: remove multiple init calls from funnel driver Mian Yousaf Kaukab 2020-01-17 14:39 ` [PATCH RFC 03/15] coresight: remove multiple init calls from replicator driver Mian Yousaf Kaukab 2020-01-17 14:39 ` [PATCH RFC 04/15] coresight: make API private Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 05/15] coresight: rename coresight.c to coresight-bus.c Mian Yousaf Kaukab 2020-01-17 14:40 ` Mian Yousaf Kaukab [this message] 2020-01-17 14:40 ` [PATCH RFC 07/15] coresight: Makefile: regroup object files Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 08/15] coresight: tmc-etr: add function to register catu ops Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 09/15] coresight: etm-perf: remove unnecessary configuration check Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 10/15] coresight: export global symbols Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 11/15] coresight: add coresight prefix to barrier_pkt Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 12/15] coresight: use IS_ENABLED macro for configuration symbols Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 13/15] coresight: Kconfig: make all configurations tristate Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 14/15] arm64: defconfig: enable coresight Mian Yousaf Kaukab 2020-01-17 14:40 ` [PATCH RFC 15/15] arm: config: enable coresight in v5 and v7 defconfigs Mian Yousaf Kaukab
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200117144010.11149-7-ykaukab@suse.de \ --to=ykaukab@suse.de \ --cc=alexander.shishkin@linux.intel.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mathieu.poirier@linaro.org \ --cc=paul.gortmaker@windriver.com \ --cc=suzuki.poulose@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-ARM-Kernel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-arm-kernel/0 linux-arm-kernel/git/0.git git clone --mirror https://lore.kernel.org/linux-arm-kernel/1 linux-arm-kernel/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-arm-kernel linux-arm-kernel/ https://lore.kernel.org/linux-arm-kernel \ linux-arm-kernel@lists.infradead.org public-inbox-index linux-arm-kernel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.infradead.lists.linux-arm-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git