Message ID | 1455470351-15219-1-git-send-email-paul.gortmaker@windriver.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 14 February 2016 at 10:19, Paul Gortmaker <paul.gortmaker@windriver.com> wrote: > 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 f309d4443130bf814e991f836e919dca22df37ae ("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> > --- > > [This is what I sent back in October[1], but with the .remove and > .suppress bits stripped out, since that is now in Mathieu's queue. > And to make this a standalone commit that Mathieu can also add to > his queue, I've squished the amba/bus.h change[2] into this change.] > > [1] http://www.spinics.net/lists/kernel/msg2096702.html > [2] http://lkml.iu.edu/hypermail/linux/kernel/1510.1/02464.html > > drivers/hwtracing/coresight/coresight-etb10.c | 9 +++------ > drivers/hwtracing/coresight/coresight-etm3x.c | 14 ++++++++------ > drivers/hwtracing/coresight/coresight-etm4x.c | 4 +--- > drivers/hwtracing/coresight/coresight-funnel.c | 9 +++------ > drivers/hwtracing/coresight/coresight-replicator-qcom.c | 4 +--- > drivers/hwtracing/coresight/coresight-replicator.c | 7 ++----- > drivers/hwtracing/coresight/coresight-tmc.c | 9 +++------ > drivers/hwtracing/coresight/coresight-tpiu.c | 9 +++------ > drivers/hwtracing/coresight/coresight.c | 3 --- > drivers/hwtracing/coresight/of_coresight.c | 1 - > include/linux/amba/bus.h | 9 +++++++++ > 11 files changed, 33 insertions(+), 45 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c > index 92969dae739d..21f6afd24a66 100644 > --- a/drivers/hwtracing/coresight/coresight-etb10.c > +++ b/drivers/hwtracing/coresight/coresight-etb10.c > @@ -1,5 +1,7 @@ > /* 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 > * only version 2 as published by the Free Software Foundation. > @@ -11,7 +13,6 @@ > */ > > #include <linux/kernel.h> > -#include <linux/module.h> > #include <linux/init.h> > #include <linux/types.h> > #include <linux/device.h> > @@ -534,8 +535,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); > diff --git a/drivers/hwtracing/coresight/coresight-etm3x.c b/drivers/hwtracing/coresight/coresight-etm3x.c > index aae80e14508d..8750b432ad36 100644 > --- a/drivers/hwtracing/coresight/coresight-etm3x.c > +++ b/drivers/hwtracing/coresight/coresight-etm3x.c > @@ -1,5 +1,7 @@ > /* 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 > * only version 2 as published by the Free Software Foundation. > @@ -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> > @@ -35,6 +37,10 @@ > > #include "coresight-etm.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); > > @@ -1950,8 +1956,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); > diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c > index d6a92c6d3a66..040327ac6e1f 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x.c > +++ b/drivers/hwtracing/coresight/coresight-etm4x.c > @@ -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> > @@ -2714,5 +2713,4 @@ static struct amba_driver etm4x_driver = { > .probe = etm4_probe, > .id_table = etm4_ids, > }; > - > -module_amba_driver(etm4x_driver); > +builtin_amba_driver(etm4x_driver); > diff --git a/drivers/hwtracing/coresight/coresight-funnel.c b/drivers/hwtracing/coresight/coresight-funnel.c > index 25e8ea140a09..2c1850c8dbe7 100644 > --- a/drivers/hwtracing/coresight/coresight-funnel.c > +++ b/drivers/hwtracing/coresight/coresight-funnel.c > @@ -1,5 +1,7 @@ > /* 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 > * only version 2 as published by the Free Software Foundation. > @@ -11,7 +13,6 @@ > */ > > #include <linux/kernel.h> > -#include <linux/module.h> > #include <linux/init.h> > #include <linux/types.h> > #include <linux/device.h> > @@ -270,8 +271,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); > diff --git a/drivers/hwtracing/coresight/coresight-replicator-qcom.c b/drivers/hwtracing/coresight/coresight-replicator-qcom.c > index 444815179460..6344dcf19639 100644 > --- a/drivers/hwtracing/coresight/coresight-replicator-qcom.c > +++ b/drivers/hwtracing/coresight/coresight-replicator-qcom.c > @@ -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> > @@ -202,5 +201,4 @@ static struct amba_driver replicator_driver = { > .probe = replicator_probe, > .id_table = replicator_ids, > }; > - > -module_amba_driver(replicator_driver); > +builtin_amba_driver(replicator_driver); > diff --git a/drivers/hwtracing/coresight/coresight-replicator.c b/drivers/hwtracing/coresight/coresight-replicator.c > index b77d700a3f0e..d31da8004d2e 100644 > --- a/drivers/hwtracing/coresight/coresight-replicator.c > +++ b/drivers/hwtracing/coresight/coresight-replicator.c > @@ -1,5 +1,7 @@ > /* 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 > * only version 2 as published by the Free Software Foundation. > @@ -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> > @@ -168,8 +169,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"); > diff --git a/drivers/hwtracing/coresight/coresight-tmc.c b/drivers/hwtracing/coresight/coresight-tmc.c > index c4fa70ed14ce..021cbb5d9eb3 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc.c > +++ b/drivers/hwtracing/coresight/coresight-tmc.c > @@ -1,5 +1,7 @@ > /* 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 > * only version 2 as published by the Free Software Foundation. > @@ -11,7 +13,6 @@ > */ > > #include <linux/kernel.h> > -#include <linux/module.h> > #include <linux/init.h> > #include <linux/types.h> > #include <linux/device.h> > @@ -787,8 +788,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); > diff --git a/drivers/hwtracing/coresight/coresight-tpiu.c b/drivers/hwtracing/coresight/coresight-tpiu.c > index ca50e73d9df7..e24bfb04f168 100644 > --- a/drivers/hwtracing/coresight/coresight-tpiu.c > +++ b/drivers/hwtracing/coresight/coresight-tpiu.c > @@ -1,5 +1,7 @@ > /* 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 > * only version 2 as published by the Free Software Foundation. > @@ -11,7 +13,6 @@ > */ > > #include <linux/kernel.h> > -#include <linux/module.h> > #include <linux/init.h> > #include <linux/device.h> > #include <linux/io.h> > @@ -220,8 +221,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); > diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c > index 7e6e9ff27dd1..4b33f1938a58 100644 > --- a/drivers/hwtracing/coresight/coresight.c > +++ b/drivers/hwtracing/coresight/coresight.c > @@ -11,7 +11,6 @@ > */ > > #include <linux/kernel.h> > -#include <linux/module.h> > #include <linux/init.h> > #include <linux/types.h> > #include <linux/device.h> > @@ -766,5 +765,3 @@ void coresight_unregister(struct coresight_device *csdev) > device_unregister(&csdev->dev); > } > EXPORT_SYMBOL_GPL(coresight_unregister); > - > -MODULE_LICENSE("GPL v2"); > diff --git a/drivers/hwtracing/coresight/of_coresight.c b/drivers/hwtracing/coresight/of_coresight.c > index 3cc57c1e3b5d..b68da1888fd5 100644 > --- a/drivers/hwtracing/coresight/of_coresight.c > +++ b/drivers/hwtracing/coresight/of_coresight.c > @@ -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> > diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h > index 9006c4e75cf7..3d8dcdd1aeae 100644 > --- a/include/linux/amba/bus.h > +++ b/include/linux/amba/bus.h > @@ -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 > -- > 2.6.1 > I'm good with this patch on the CS side but Russell maintains the amba subsystem and as such needs to agree with the new macro. Russell, I offer to take this through my tree if you're fine with the changes. Thanks, Mathieu
On Mon, Feb 15, 2016 at 06:25:56PM -0700, Mathieu Poirier wrote: > On 14 February 2016 at 10:19, Paul Gortmaker > <paul.gortmaker@windriver.com> wrote: > > diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h > > index 9006c4e75cf7..3d8dcdd1aeae 100644 > > --- a/include/linux/amba/bus.h > > +++ b/include/linux/amba/bus.h > > @@ -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 > > -- > > 2.6.1 > > > > I'm good with this patch on the CS side but Russell maintains the amba > subsystem and as such needs to agree with the new macro. Russell, I > offer to take this through my tree if you're fine with the changes. Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
On 16 February 2016 at 03:15, Russell King - ARM Linux <linux@arm.linux.org.uk> wrote: > On Mon, Feb 15, 2016 at 06:25:56PM -0700, Mathieu Poirier wrote: >> On 14 February 2016 at 10:19, Paul Gortmaker >> <paul.gortmaker@windriver.com> wrote: >> > diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h >> > index 9006c4e75cf7..3d8dcdd1aeae 100644 >> > --- a/include/linux/amba/bus.h >> > +++ b/include/linux/amba/bus.h >> > @@ -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 >> > -- >> > 2.6.1 >> > >> >> I'm good with this patch on the CS side but Russell maintains the amba >> subsystem and as such needs to agree with the new macro. Russell, I >> offer to take this through my tree if you're fine with the changes. > > Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> > Applied - thanks. > -- > RMK's Patch system: http://www.arm.linux.org.uk/developer/patches/ > FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up > according to speedtest.net.
diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c index 92969dae739d..21f6afd24a66 100644 --- a/drivers/hwtracing/coresight/coresight-etb10.c +++ b/drivers/hwtracing/coresight/coresight-etb10.c @@ -1,5 +1,7 @@ /* 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 * only version 2 as published by the Free Software Foundation. @@ -11,7 +13,6 @@ */ #include <linux/kernel.h> -#include <linux/module.h> #include <linux/init.h> #include <linux/types.h> #include <linux/device.h> @@ -534,8 +535,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); diff --git a/drivers/hwtracing/coresight/coresight-etm3x.c b/drivers/hwtracing/coresight/coresight-etm3x.c index aae80e14508d..8750b432ad36 100644 --- a/drivers/hwtracing/coresight/coresight-etm3x.c +++ b/drivers/hwtracing/coresight/coresight-etm3x.c @@ -1,5 +1,7 @@ /* 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 * only version 2 as published by the Free Software Foundation. @@ -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> @@ -35,6 +37,10 @@ #include "coresight-etm.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); @@ -1950,8 +1956,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); diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c index d6a92c6d3a66..040327ac6e1f 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x.c +++ b/drivers/hwtracing/coresight/coresight-etm4x.c @@ -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> @@ -2714,5 +2713,4 @@ static struct amba_driver etm4x_driver = { .probe = etm4_probe, .id_table = etm4_ids, }; - -module_amba_driver(etm4x_driver); +builtin_amba_driver(etm4x_driver); diff --git a/drivers/hwtracing/coresight/coresight-funnel.c b/drivers/hwtracing/coresight/coresight-funnel.c index 25e8ea140a09..2c1850c8dbe7 100644 --- a/drivers/hwtracing/coresight/coresight-funnel.c +++ b/drivers/hwtracing/coresight/coresight-funnel.c @@ -1,5 +1,7 @@ /* 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 * only version 2 as published by the Free Software Foundation. @@ -11,7 +13,6 @@ */ #include <linux/kernel.h> -#include <linux/module.h> #include <linux/init.h> #include <linux/types.h> #include <linux/device.h> @@ -270,8 +271,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); diff --git a/drivers/hwtracing/coresight/coresight-replicator-qcom.c b/drivers/hwtracing/coresight/coresight-replicator-qcom.c index 444815179460..6344dcf19639 100644 --- a/drivers/hwtracing/coresight/coresight-replicator-qcom.c +++ b/drivers/hwtracing/coresight/coresight-replicator-qcom.c @@ -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> @@ -202,5 +201,4 @@ static struct amba_driver replicator_driver = { .probe = replicator_probe, .id_table = replicator_ids, }; - -module_amba_driver(replicator_driver); +builtin_amba_driver(replicator_driver); diff --git a/drivers/hwtracing/coresight/coresight-replicator.c b/drivers/hwtracing/coresight/coresight-replicator.c index b77d700a3f0e..d31da8004d2e 100644 --- a/drivers/hwtracing/coresight/coresight-replicator.c +++ b/drivers/hwtracing/coresight/coresight-replicator.c @@ -1,5 +1,7 @@ /* 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 * only version 2 as published by the Free Software Foundation. @@ -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> @@ -168,8 +169,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"); diff --git a/drivers/hwtracing/coresight/coresight-tmc.c b/drivers/hwtracing/coresight/coresight-tmc.c index c4fa70ed14ce..021cbb5d9eb3 100644 --- a/drivers/hwtracing/coresight/coresight-tmc.c +++ b/drivers/hwtracing/coresight/coresight-tmc.c @@ -1,5 +1,7 @@ /* 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 * only version 2 as published by the Free Software Foundation. @@ -11,7 +13,6 @@ */ #include <linux/kernel.h> -#include <linux/module.h> #include <linux/init.h> #include <linux/types.h> #include <linux/device.h> @@ -787,8 +788,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); diff --git a/drivers/hwtracing/coresight/coresight-tpiu.c b/drivers/hwtracing/coresight/coresight-tpiu.c index ca50e73d9df7..e24bfb04f168 100644 --- a/drivers/hwtracing/coresight/coresight-tpiu.c +++ b/drivers/hwtracing/coresight/coresight-tpiu.c @@ -1,5 +1,7 @@ /* 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 * only version 2 as published by the Free Software Foundation. @@ -11,7 +13,6 @@ */ #include <linux/kernel.h> -#include <linux/module.h> #include <linux/init.h> #include <linux/device.h> #include <linux/io.h> @@ -220,8 +221,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); diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c index 7e6e9ff27dd1..4b33f1938a58 100644 --- a/drivers/hwtracing/coresight/coresight.c +++ b/drivers/hwtracing/coresight/coresight.c @@ -11,7 +11,6 @@ */ #include <linux/kernel.h> -#include <linux/module.h> #include <linux/init.h> #include <linux/types.h> #include <linux/device.h> @@ -766,5 +765,3 @@ void coresight_unregister(struct coresight_device *csdev) device_unregister(&csdev->dev); } EXPORT_SYMBOL_GPL(coresight_unregister); - -MODULE_LICENSE("GPL v2"); diff --git a/drivers/hwtracing/coresight/of_coresight.c b/drivers/hwtracing/coresight/of_coresight.c index 3cc57c1e3b5d..b68da1888fd5 100644 --- a/drivers/hwtracing/coresight/of_coresight.c +++ b/drivers/hwtracing/coresight/of_coresight.c @@ -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> diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 9006c4e75cf7..3d8dcdd1aeae 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h @@ -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
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 f309d4443130bf814e991f836e919dca22df37ae ("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> --- [This is what I sent back in October[1], but with the .remove and .suppress bits stripped out, since that is now in Mathieu's queue. And to make this a standalone commit that Mathieu can also add to his queue, I've squished the amba/bus.h change[2] into this change.] [1] http://www.spinics.net/lists/kernel/msg2096702.html [2] http://lkml.iu.edu/hypermail/linux/kernel/1510.1/02464.html drivers/hwtracing/coresight/coresight-etb10.c | 9 +++------ drivers/hwtracing/coresight/coresight-etm3x.c | 14 ++++++++------ drivers/hwtracing/coresight/coresight-etm4x.c | 4 +--- drivers/hwtracing/coresight/coresight-funnel.c | 9 +++------ drivers/hwtracing/coresight/coresight-replicator-qcom.c | 4 +--- drivers/hwtracing/coresight/coresight-replicator.c | 7 ++----- drivers/hwtracing/coresight/coresight-tmc.c | 9 +++------ drivers/hwtracing/coresight/coresight-tpiu.c | 9 +++------ drivers/hwtracing/coresight/coresight.c | 3 --- drivers/hwtracing/coresight/of_coresight.c | 1 - include/linux/amba/bus.h | 9 +++++++++ 11 files changed, 33 insertions(+), 45 deletions(-)