lkml.org 
[lkml]   [2018]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 10/14] coresight: allow etb to be built as a module
    Date
    Allow to build coresight-etb10 as a module, for ease of development.

    - Kconfig becomes a tristate, to allow =m
    - add an etb_remove function, for module unload
    - add a MODULE_DEVICE_TABLE for autoloading on boot

    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Suzuki K Poulose <Suzuki.Poulose@arm.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Signed-off-by: Kim Phillips <kim.phillips@arm.com>
    ---
    drivers/hwtracing/coresight/Kconfig | 5 ++++-
    drivers/hwtracing/coresight/coresight-etb10.c | 20 ++++++++++++++++++-
    2 files changed, 23 insertions(+), 2 deletions(-)

    diff --git a/drivers/hwtracing/coresight/Kconfig b/drivers/hwtracing/coresight/Kconfig
    index c32673f9177a..3c3256425a7f 100644
    --- a/drivers/hwtracing/coresight/Kconfig
    +++ b/drivers/hwtracing/coresight/Kconfig
    @@ -43,13 +43,16 @@ config CORESIGHT_SINK_TPIU
    the on-board coresight memory can handle.

    config CORESIGHT_SINK_ETBV10
    - bool "Coresight ETBv1.0 driver"
    + tristate "Coresight ETBv1.0 driver"
    depends on CORESIGHT_LINKS_AND_SINKS
    help
    This enables support for the Embedded Trace Buffer version 1.0 driver
    that complies with the generic implementation of the component without
    special enhancement or added features.

    + To compile this driver as a module, choose M here: the
    + module will be called coresight-etb10.
    +
    config CORESIGHT_SOURCE_ETM3X
    tristate "CoreSight Embedded Trace Macrocell 3.x driver"
    depends on !ARM64
    diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c
    index 78e71bf728fc..5b9d264e35be 100644
    --- a/drivers/hwtracing/coresight/coresight-etb10.c
    +++ b/drivers/hwtracing/coresight/coresight-etb10.c
    @@ -708,6 +708,16 @@ static int etb_probe(struct amba_device *adev, const struct amba_id *id)
    return ret;
    }

    +static int __exit etb_remove(struct amba_device *adev)
    +{
    + struct etb_drvdata *drvdata = dev_get_drvdata(&adev->dev);
    +
    + misc_deregister(&drvdata->miscdev);
    + coresight_unregister(drvdata->csdev);
    +
    + return 0;
    +}
    +
    #ifdef CONFIG_PM
    static int etb_runtime_suspend(struct device *dev)
    {
    @@ -742,6 +752,8 @@ static const struct amba_id etb_ids[] = {
    { 0, 0},
    };

    +MODULE_DEVICE_TABLE(amba, etb_ids);
    +
    static struct amba_driver etb_driver = {
    .drv = {
    .name = "coresight-etb10",
    @@ -751,6 +763,12 @@ static struct amba_driver etb_driver = {

    },
    .probe = etb_probe,
    + .remove = etb_remove,
    .id_table = etb_ids,
    };
    -builtin_amba_driver(etb_driver);
    +module_amba_driver(etb_driver);
    +
    +MODULE_AUTHOR("Pratik Patel <pratikp@codeaurora.org>");
    +MODULE_AUTHOR("Mathieu Poirier <mathieu.poirier@linaro.org>");
    +MODULE_DESCRIPTION("Arm CoreSight Embedded Trace Buffer driver");
    +MODULE_LICENSE("GPL v2");
    --
    2.17.0
    \
     
     \ /
      Last update: 2018-06-05 23:13    [W:4.476 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site