Allow to build coresight as modules. This gives developers the feasibility to test their code without reboot.
This series is based on below two series.
- "coresight: allow to build components as modules" https://lkml.org/lkml/2018/6/5/989 - "coresight: make drivers modular" https://lkml.org/lkml/2020/1/17/468
This series adds the support to dynamically remove module when the device in that module is enabled and used by some trace path. It disables all trace paths with that device and release the trace path.
Kim Phillips (7): coresight: use IS_ENABLED for CONFIGs that may be modules coresight: allow etm3x to be built as a module coresight: allow etm4x to be built as a module coresight: allow etb to be built as a module coresight: allow tpiu to be built as a module coresight: allow tmc to be built as a module coresight: allow funnel and replicator drivers to be built as modules
Mian Yousaf Kaukab (4): coresight: export global symbols coresight: remove multiple init calls from funnel driver coresight: remove multiple init calls from replicator driver coresight: tmc-etr: add function to register catu ops
Tingwei Zhang (10): coresight: cpu_debug: add module name in Kconfig coresight: cpu_debug: define MODULE_DEVICE_TABLE coresight: add coresight prefix to barrier_pkt Allow to build coresight-stm as a module, for ease of development. coresight: cti: add function to register cti associate ops coresight: allow cti to be built as a module coresight: allow catu drivers to be built as modules coresight: disable trace path with device being removed coresight: allow the coresight core driver to be built as a module coresight: perf: clean up perf event on device unregister path
drivers/hwtracing/coresight/Kconfig | 54 ++++- drivers/hwtracing/coresight/Makefile | 20 +- drivers/hwtracing/coresight/coresight-catu.c | 37 ++- drivers/hwtracing/coresight/coresight-catu.h | 2 - .../{coresight.c => coresight-core.c} | 218 ++++++++++++++++-- .../hwtracing/coresight/coresight-cpu-debug.c | 2 + .../{coresight-cti.c => coresight-cti-core.c} | 46 +++- drivers/hwtracing/coresight/coresight-etb10.c | 22 +- .../hwtracing/coresight/coresight-etm-perf.c | 166 ++++++++++++- .../hwtracing/coresight/coresight-etm-perf.h | 7 +- ...resight-etm3x.c => coresight-etm3x-core.c} | 27 ++- ...resight-etm4x.c => coresight-etm4x-core.c} | 31 ++- .../hwtracing/coresight/coresight-funnel.c | 62 ++++- .../hwtracing/coresight/coresight-platform.c | 1 + drivers/hwtracing/coresight/coresight-priv.h | 28 +-- .../coresight/coresight-replicator.c | 63 ++++- drivers/hwtracing/coresight/coresight-stm.c | 20 +- .../{coresight-tmc.c => coresight-tmc-core.c} | 19 +- .../hwtracing/coresight/coresight-tmc-etf.c | 2 +- .../hwtracing/coresight/coresight-tmc-etr.c | 21 +- drivers/hwtracing/coresight/coresight-tmc.h | 3 + drivers/hwtracing/coresight/coresight-tpiu.c | 19 +- include/linux/coresight.h | 2 +- kernel/events/core.c | 1 + 24 files changed, 796 insertions(+), 77 deletions(-) rename drivers/hwtracing/coresight/{coresight.c => coresight-core.c} (87%) rename drivers/hwtracing/coresight/{coresight-cti.c => coresight-cti-core.c} (95%) rename drivers/hwtracing/coresight/{coresight-etm3x.c => coresight-etm3x-core.c} (97%) rename drivers/hwtracing/coresight/{coresight-etm4x.c => coresight-etm4x-core.c} (98%) rename drivers/hwtracing/coresight/{coresight-tmc.c => coresight-tmc-core.c} (96%)