Skip to content

Commit

Permalink
drivers/hwtracing: make coresight-* explicitly non-modular
Browse files Browse the repository at this point in the history
None of the Kconfig currently controlling compilation of any of
the files here are tristate, meaning that none of it currently
is being built as a module by anyone.

We need not be concerned about .remove functions and blocking the
unbind sysfs operations, since that was already done in a recent
commit.

Lets remove any remaining modular references, so that when reading the
drivers there is no doubt they are builtin-only.

All drivers get mostly the same changes, so they are handled in batch.
Changes are (1) convert to builtin_amba_driver, (2) delete module.h
include where unused, and (3) relocate the description into the
comments so we don't need MODULE_DESCRIPTION and associated tags.

The etm3x and etm4x use module_param_named, and have been adjusted
to just include moduleparam.h for that purpose.

In commit f309d44 ("platform_device:
better support builtin boilerplate avoidance") we introduced the
builtin_driver macro.

Here we use that support and extend it to amba driver registration,
so where a driver is clearly non-modular and builtin-only, we can
update with the simple mapping of

     module_amba_driver(...)  ---> builtin_amba_driver(...)

Since module_amba_driver() uses the same init level priority as
builtin_amba_driver() the init ordering remains unchanged with
this commit.

Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Paul Gortmaker authored and Greg Kroah-Hartman committed Feb 20, 2016
1 parent 17534ce commit 941943c
Show file tree
Hide file tree
Showing 11 changed files with 33 additions and 45 deletions.
9 changes: 3 additions & 6 deletions drivers/hwtracing/coresight/coresight-etb10.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
*
* Description: CoreSight Embedded Trace Buffer driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand All @@ -12,7 +14,6 @@

#include <asm/local.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/device.h>
Expand Down Expand Up @@ -781,8 +782,4 @@ static struct amba_driver etb_driver = {
.probe = etb_probe,
.id_table = etb_ids,
};

module_amba_driver(etb_driver);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("CoreSight Embedded Trace Buffer driver");
builtin_amba_driver(etb_driver);
14 changes: 8 additions & 6 deletions drivers/hwtracing/coresight/coresight-etm3x.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
*
* Description: CoreSight Program Flow Trace driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand All @@ -11,7 +13,7 @@
*/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/device.h>
Expand All @@ -38,6 +40,10 @@
#include "coresight-etm.h"
#include "coresight-etm-perf.h"

/*
* Not really modular but using module_param is the easiest way to
* remain consistent with existing use cases for now.
*/
static int boot_enable;
module_param_named(boot_enable, boot_enable, int, S_IRUGO);

Expand Down Expand Up @@ -912,8 +918,4 @@ static struct amba_driver etm_driver = {
.probe = etm_probe,
.id_table = etm_ids,
};

module_amba_driver(etm_driver);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("CoreSight Program Flow Trace driver");
builtin_amba_driver(etm_driver);
4 changes: 1 addition & 3 deletions drivers/hwtracing/coresight/coresight-etm4x.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include <linux/init.h>
#include <linux/types.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/io.h>
#include <linux/err.h>
#include <linux/fs.h>
Expand Down Expand Up @@ -2710,5 +2709,4 @@ static struct amba_driver etm4x_driver = {
.probe = etm4_probe,
.id_table = etm4_ids,
};

module_amba_driver(etm4x_driver);
builtin_amba_driver(etm4x_driver);
9 changes: 3 additions & 6 deletions drivers/hwtracing/coresight/coresight-funnel.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
*
* Description: CoreSight Funnel driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand All @@ -11,7 +13,6 @@
*/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/device.h>
Expand Down Expand Up @@ -268,8 +269,4 @@ static struct amba_driver funnel_driver = {
.probe = funnel_probe,
.id_table = funnel_ids,
};

module_amba_driver(funnel_driver);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("CoreSight Funnel driver");
builtin_amba_driver(funnel_driver);
4 changes: 1 addition & 3 deletions drivers/hwtracing/coresight/coresight-replicator-qcom.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include <linux/clk.h>
#include <linux/coresight.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/io.h>
Expand Down Expand Up @@ -198,5 +197,4 @@ static struct amba_driver replicator_driver = {
.probe = replicator_probe,
.id_table = replicator_ids,
};

module_amba_driver(replicator_driver);
builtin_amba_driver(replicator_driver);
7 changes: 2 additions & 5 deletions drivers/hwtracing/coresight/coresight-replicator.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
*
* Description: CoreSight Replicator driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand All @@ -11,7 +13,6 @@
*/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/io.h>
Expand Down Expand Up @@ -166,8 +167,4 @@ static struct platform_driver replicator_driver = {
.suppress_bind_attrs = true,
},
};

builtin_platform_driver(replicator_driver);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("CoreSight Replicator driver");
9 changes: 3 additions & 6 deletions drivers/hwtracing/coresight/coresight-tmc.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Copyright (c) 2012, The Linux Foundation. All rights reserved.
*
* Description: CoreSight Trace Memory Controller driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand All @@ -11,7 +13,6 @@
*/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/device.h>
Expand Down Expand Up @@ -782,8 +783,4 @@ static struct amba_driver tmc_driver = {
.probe = tmc_probe,
.id_table = tmc_ids,
};

module_amba_driver(tmc_driver);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("CoreSight Trace Memory Controller driver");
builtin_amba_driver(tmc_driver);
9 changes: 3 additions & 6 deletions drivers/hwtracing/coresight/coresight-tpiu.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
*
* Description: CoreSight Trace Port Interface Unit driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand All @@ -11,7 +13,6 @@
*/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/io.h>
Expand Down Expand Up @@ -218,8 +219,4 @@ static struct amba_driver tpiu_driver = {
.probe = tpiu_probe,
.id_table = tpiu_ids,
};

module_amba_driver(tpiu_driver);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("CoreSight Trace Port Interface Unit driver");
builtin_amba_driver(tpiu_driver);
3 changes: 0 additions & 3 deletions drivers/hwtracing/coresight/coresight.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
*/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/device.h>
Expand Down Expand Up @@ -894,5 +893,3 @@ void coresight_unregister(struct coresight_device *csdev)
device_unregister(&csdev->dev);
}
EXPORT_SYMBOL_GPL(coresight_unregister);

MODULE_LICENSE("GPL v2");
1 change: 0 additions & 1 deletion drivers/hwtracing/coresight/of_coresight.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
* GNU General Public License for more details.
*/

#include <linux/module.h>
#include <linux/types.h>
#include <linux/err.h>
#include <linux/slab.h>
Expand Down
9 changes: 9 additions & 0 deletions include/linux/amba/bus.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,4 +163,13 @@ struct amba_device name##_device = { \
#define module_amba_driver(__amba_drv) \
module_driver(__amba_drv, amba_driver_register, amba_driver_unregister)

/*
* builtin_amba_driver() - Helper macro for drivers that don't do anything
* special in driver initcall. This eliminates a lot of boilerplate. Each
* driver may only use this macro once, and calling it replaces the instance
* device_initcall().
*/
#define builtin_amba_driver(__amba_drv) \
builtin_driver(__amba_drv, amba_driver_register)

#endif

0 comments on commit 941943c

Please sign in to comment.