* [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular
2016-06-17 0:37 [PATCH 0/6] memory: remove modular usage from non-modular drivers Paul Gortmaker
@ 2016-06-17 0:37 ` Paul Gortmaker
2016-06-17 7:30 ` Nicolas Ferre
2016-06-21 15:17 ` Alexandre Belloni
2016-06-17 0:37 ` [PATCH 2/6] memory: mvebu-devbus: " Paul Gortmaker
` (4 subsequent siblings)
5 siblings, 2 replies; 14+ messages in thread
From: Paul Gortmaker @ 2016-06-17 0:37 UTC (permalink / raw)
To: linux-kernel; +Cc: Paul Gortmaker, Alexandre Belloni, Nicolas Ferre
The Kconfig for this option is currently:
config ATMEL_SDRAMC
bool "Atmel (Multi-port DDR-)SDRAM Controller"
...meaning that it currently is not being built as a module by anyone.
Lets remove the couple traces of modularity, so that when reading the
driver there is no doubt it is builtin-only.
Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit. An
alternate init level might be worth considering at a later date.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/memory/atmel-sdramc.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/memory/atmel-sdramc.c b/drivers/memory/atmel-sdramc.c
index a3ebc8a87479..53a341f3b305 100644
--- a/drivers/memory/atmel-sdramc.c
+++ b/drivers/memory/atmel-sdramc.c
@@ -1,6 +1,8 @@
/*
* Atmel (Multi-port DDR-)SDRAM Controller driver
*
+ * Author: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+ *
* Copyright (C) 2014 Atmel
*
* This program is free software: you can redistribute it and/or modify
@@ -20,7 +22,7 @@
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/kernel.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
@@ -48,7 +50,6 @@ static const struct of_device_id atmel_ramc_of_match[] = {
{ .compatible = "atmel,sama5d3-ddramc", .data = &sama5d3_caps, },
{},
};
-MODULE_DEVICE_TABLE(of, atmel_ramc_of_match);
static int atmel_ramc_probe(struct platform_device *pdev)
{
@@ -90,8 +91,4 @@ static int __init atmel_ramc_init(void)
{
return platform_driver_register(&atmel_ramc_driver);
}
-module_init(atmel_ramc_init);
-
-MODULE_LICENSE("GPL v2");
-MODULE_AUTHOR("Alexandre Belloni <alexandre.belloni@free-electrons.com>");
-MODULE_DESCRIPTION("Atmel (Multi-port DDR-)SDRAM Controller");
+device_initcall(atmel_ramc_init);
--
2.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular
2016-06-17 0:37 ` [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular Paul Gortmaker
@ 2016-06-17 7:30 ` Nicolas Ferre
2016-06-21 15:17 ` Alexandre Belloni
1 sibling, 0 replies; 14+ messages in thread
From: Nicolas Ferre @ 2016-06-17 7:30 UTC (permalink / raw)
To: Paul Gortmaker, linux-kernel; +Cc: Alexandre Belloni
Le 17/06/2016 02:37, Paul Gortmaker a écrit :
> The Kconfig for this option is currently:
>
> config ATMEL_SDRAMC
> bool "Atmel (Multi-port DDR-)SDRAM Controller"
>
> ...meaning that it currently is not being built as a module by anyone.
> Lets remove the couple traces of modularity, so that when reading the
> driver there is no doubt it is builtin-only.
>
> Since module_init translates to device_initcall in the non-modular
> case, the init ordering remains unchanged with this commit. An
> alternate init level might be worth considering at a later date.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> was (or is now) contained at the top of the file in the comments.
>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> drivers/memory/atmel-sdramc.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/memory/atmel-sdramc.c b/drivers/memory/atmel-sdramc.c
> index a3ebc8a87479..53a341f3b305 100644
> --- a/drivers/memory/atmel-sdramc.c
> +++ b/drivers/memory/atmel-sdramc.c
> @@ -1,6 +1,8 @@
> /*
> * Atmel (Multi-port DDR-)SDRAM Controller driver
> *
> + * Author: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> + *
> * Copyright (C) 2014 Atmel
> *
> * This program is free software: you can redistribute it and/or modify
> @@ -20,7 +22,7 @@
> #include <linux/clk.h>
> #include <linux/err.h>
> #include <linux/kernel.h>
> -#include <linux/module.h>
> +#include <linux/init.h>
> #include <linux/of_platform.h>
> #include <linux/platform_device.h>
>
> @@ -48,7 +50,6 @@ static const struct of_device_id atmel_ramc_of_match[] = {
> { .compatible = "atmel,sama5d3-ddramc", .data = &sama5d3_caps, },
> {},
> };
> -MODULE_DEVICE_TABLE(of, atmel_ramc_of_match);
>
> static int atmel_ramc_probe(struct platform_device *pdev)
> {
> @@ -90,8 +91,4 @@ static int __init atmel_ramc_init(void)
> {
> return platform_driver_register(&atmel_ramc_driver);
> }
> -module_init(atmel_ramc_init);
> -
> -MODULE_LICENSE("GPL v2");
> -MODULE_AUTHOR("Alexandre Belloni <alexandre.belloni@free-electrons.com>");
> -MODULE_DESCRIPTION("Atmel (Multi-port DDR-)SDRAM Controller");
> +device_initcall(atmel_ramc_init);
>
--
Nicolas Ferre
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular
2016-06-17 0:37 ` [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular Paul Gortmaker
2016-06-17 7:30 ` Nicolas Ferre
@ 2016-06-21 15:17 ` Alexandre Belloni
1 sibling, 0 replies; 14+ messages in thread
From: Alexandre Belloni @ 2016-06-21 15:17 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linux-kernel, Nicolas Ferre
On 16/06/2016 at 20:37:43 -0400, Paul Gortmaker wrote :
> The Kconfig for this option is currently:
>
> config ATMEL_SDRAMC
> bool "Atmel (Multi-port DDR-)SDRAM Controller"
>
> ...meaning that it currently is not being built as a module by anyone.
> Lets remove the couple traces of modularity, so that when reading the
> driver there is no doubt it is builtin-only.
>
> Since module_init translates to device_initcall in the non-modular
> case, the init ordering remains unchanged with this commit. An
> alternate init level might be worth considering at a later date.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> was (or is now) contained at the top of the file in the comments.
>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> drivers/memory/atmel-sdramc.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
Applied, thanks.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/6] memory: mvebu-devbus: make it explicitly non-modular
2016-06-17 0:37 [PATCH 0/6] memory: remove modular usage from non-modular drivers Paul Gortmaker
2016-06-17 0:37 ` [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular Paul Gortmaker
@ 2016-06-17 0:37 ` Paul Gortmaker
2016-06-17 0:37 ` [PATCH 3/6] memory: omap-gpmc: " Paul Gortmaker
` (3 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Paul Gortmaker @ 2016-06-17 0:37 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Ezequiel Garcia, Thomas Petazzoni, Jason Cooper
The Kconfig for this option is currently:
config MVEBU_DEVBUS
bool "Marvell EBU Device Bus Controller"
...meaning that it currently is not being built as a module by anyone.
Lets remove the couple traces of modularity, so that when reading the
driver there is no doubt it is builtin-only.
Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit. An
alternate init level might be worth considering at a later date.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/memory/mvebu-devbus.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/memory/mvebu-devbus.c b/drivers/memory/mvebu-devbus.c
index 24852812fd44..543eeec47bd1 100644
--- a/drivers/memory/mvebu-devbus.c
+++ b/drivers/memory/mvebu-devbus.c
@@ -2,6 +2,8 @@
* Marvell EBU SoC Device Bus Controller
* (memory controller for NOR/NAND/SRAM/FPGA devices)
*
+ * Author: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
+ *
* Copyright (C) 2013-2014 Marvell
*
* This program is free software: you can redistribute it and/or modify
@@ -19,7 +21,7 @@
*/
#include <linux/kernel.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/slab.h>
#include <linux/err.h>
#include <linux/io.h>
@@ -340,7 +342,6 @@ static const struct of_device_id mvebu_devbus_of_match[] = {
{ .compatible = "marvell,orion-devbus" },
{},
};
-MODULE_DEVICE_TABLE(of, mvebu_devbus_of_match);
static struct platform_driver mvebu_devbus_driver = {
.probe = mvebu_devbus_probe,
@@ -354,8 +355,4 @@ static int __init mvebu_devbus_init(void)
{
return platform_driver_register(&mvebu_devbus_driver);
}
-module_init(mvebu_devbus_init);
-
-MODULE_LICENSE("GPL v2");
-MODULE_AUTHOR("Ezequiel Garcia <ezequiel.garcia@free-electrons.com>");
-MODULE_DESCRIPTION("Marvell EBU SoC Device Bus controller");
+device_initcall(mvebu_devbus_init);
--
2.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/6] memory: omap-gpmc: make it explicitly non-modular
2016-06-17 0:37 [PATCH 0/6] memory: remove modular usage from non-modular drivers Paul Gortmaker
2016-06-17 0:37 ` [PATCH 1/6] memory: atmel-sdramc: make it explicitly non-modular Paul Gortmaker
2016-06-17 0:37 ` [PATCH 2/6] memory: mvebu-devbus: " Paul Gortmaker
@ 2016-06-17 0:37 ` Paul Gortmaker
2016-06-17 7:26 ` Roger Quadros
2016-06-17 0:37 ` [PATCH 4/6] memory: tegra20-mc: " Paul Gortmaker
` (2 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Paul Gortmaker @ 2016-06-17 0:37 UTC (permalink / raw)
To: linux-kernel; +Cc: Paul Gortmaker, Roger Quadros, Tony Lindgren, linux-omap
The Kconfig currently controlling compilation of this code is:
drivers/memory/Kconfig:config OMAP_GPMC
drivers/memory/Kconfig: bool
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
Since module_init was not in use by this code, the init ordering
remains unchanged with this commit.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We don't replace module.h with init.h since the file already has that.
Cc: Roger Quadros <rogerq@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/memory/omap-gpmc.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
index af4884ba6b7c..827832ac0b8c 100644
--- a/drivers/memory/omap-gpmc.c
+++ b/drivers/memory/omap-gpmc.c
@@ -20,7 +20,6 @@
#include <linux/ioport.h>
#include <linux/spinlock.h>
#include <linux/io.h>
-#include <linux/module.h>
#include <linux/gpio/driver.h>
#include <linux/interrupt.h>
#include <linux/irqdomain.h>
@@ -1807,7 +1806,6 @@ static const struct of_device_id gpmc_dt_ids[] = {
{ .compatible = "ti,am3352-gpmc" }, /* am335x devices */
{ }
};
-MODULE_DEVICE_TABLE(of, gpmc_dt_ids);
/**
* gpmc_read_settings_dt - read gpmc settings from device-tree
@@ -2437,15 +2435,7 @@ static __init int gpmc_init(void)
{
return platform_driver_register(&gpmc_driver);
}
-
-static __exit void gpmc_exit(void)
-{
- platform_driver_unregister(&gpmc_driver);
-
-}
-
postcore_initcall(gpmc_init);
-module_exit(gpmc_exit);
static struct omap3_gpmc_regs gpmc_context;
--
2.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/6] memory: omap-gpmc: make it explicitly non-modular
2016-06-17 0:37 ` [PATCH 3/6] memory: omap-gpmc: " Paul Gortmaker
@ 2016-06-17 7:26 ` Roger Quadros
0 siblings, 0 replies; 14+ messages in thread
From: Roger Quadros @ 2016-06-17 7:26 UTC (permalink / raw)
To: Paul Gortmaker, linux-kernel; +Cc: Tony Lindgren, linux-omap
Hi Paul,
On 17/06/16 03:37, Paul Gortmaker wrote:
> The Kconfig currently controlling compilation of this code is:
>
> drivers/memory/Kconfig:config OMAP_GPMC
> drivers/memory/Kconfig: bool
>
> ...meaning that it currently is not being built as a module by anyone.
>
> Lets remove the modular code that is essentially orphaned, so that
> when reading the driver there is no doubt it is builtin-only.
>
> Since module_init was not in use by this code, the init ordering
> remains unchanged with this commit.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We don't replace module.h with init.h since the file already has that.
>
> Cc: Roger Quadros <rogerq@ti.com>
> Cc: Tony Lindgren <tony@atomide.com>
> Cc: linux-omap@vger.kernel.org
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Looks fine to me. omap-gpmc.c be a module till code from arch/arm/mach-omap2/
stops calling directly into it.
I will queue this up for v4.8. Thanks.
> ---
> drivers/memory/omap-gpmc.c | 10 ----------
> 1 file changed, 10 deletions(-)
>
> diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
> index af4884ba6b7c..827832ac0b8c 100644
> --- a/drivers/memory/omap-gpmc.c
> +++ b/drivers/memory/omap-gpmc.c
> @@ -20,7 +20,6 @@
> #include <linux/ioport.h>
> #include <linux/spinlock.h>
> #include <linux/io.h>
> -#include <linux/module.h>
> #include <linux/gpio/driver.h>
> #include <linux/interrupt.h>
> #include <linux/irqdomain.h>
> @@ -1807,7 +1806,6 @@ static const struct of_device_id gpmc_dt_ids[] = {
> { .compatible = "ti,am3352-gpmc" }, /* am335x devices */
> { }
> };
> -MODULE_DEVICE_TABLE(of, gpmc_dt_ids);
>
> /**
> * gpmc_read_settings_dt - read gpmc settings from device-tree
> @@ -2437,15 +2435,7 @@ static __init int gpmc_init(void)
> {
> return platform_driver_register(&gpmc_driver);
> }
> -
> -static __exit void gpmc_exit(void)
> -{
> - platform_driver_unregister(&gpmc_driver);
> -
> -}
> -
> postcore_initcall(gpmc_init);
> -module_exit(gpmc_exit);
>
> static struct omap3_gpmc_regs gpmc_context;
>
>
--
cheers,
-roger
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/6] memory: tegra20-mc: make it explicitly non-modular
2016-06-17 0:37 [PATCH 0/6] memory: remove modular usage from non-modular drivers Paul Gortmaker
` (2 preceding siblings ...)
2016-06-17 0:37 ` [PATCH 3/6] memory: omap-gpmc: " Paul Gortmaker
@ 2016-06-17 0:37 ` Paul Gortmaker
2016-06-17 0:37 ` [PATCH 5/6] memory: samsung/exynos-srom: " Paul Gortmaker
2016-06-17 0:37 ` [PATCH 6/6] memory: atmel-ebi: " Paul Gortmaker
5 siblings, 0 replies; 14+ messages in thread
From: Paul Gortmaker @ 2016-06-17 0:37 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Stephen Warren, Thierry Reding,
Alexandre Courbot, Hiroshi DOYU, linux-tegra
The Kconfig currently controlling compilation of this code is:
drivers/memory/Kconfig:config TEGRA20_MC
drivers/memory/Kconfig: bool "Tegra20 Memory Controller(MC) driver"
...meaning that it currently is not being built as a module by anyone.
Lets remove the couple of traces of modular references, so that when
reading the driver there is no doubt it is builtin-only.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
Also note that MODULE_ALIAS is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: Hiroshi DOYU <hdoyu@nvidia.com>
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/memory/tegra20-mc.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/memory/tegra20-mc.c b/drivers/memory/tegra20-mc.c
index cc309a05289a..098f1b4dd4b7 100644
--- a/drivers/memory/tegra20-mc.c
+++ b/drivers/memory/tegra20-mc.c
@@ -1,6 +1,8 @@
/*
* Tegra20 Memory Controller
*
+ * Author: Hiroshi DOYU <hdoyu@nvidia.com>
+ *
* Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
@@ -19,7 +21,7 @@
#include <linux/err.h>
#include <linux/kernel.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/ratelimit.h>
#include <linux/platform_device.h>
#include <linux/interrupt.h>
@@ -246,9 +248,4 @@ static struct platform_driver tegra20_mc_driver = {
.of_match_table = tegra20_mc_of_match,
},
};
-module_platform_driver(tegra20_mc_driver);
-
-MODULE_AUTHOR("Hiroshi DOYU <hdoyu@nvidia.com>");
-MODULE_DESCRIPTION("Tegra20 MC driver");
-MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform:" DRV_NAME);
+builtin_platform_driver(tegra20_mc_driver);
--
2.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/6] memory: samsung/exynos-srom: make it explicitly non-modular
2016-06-17 0:37 [PATCH 0/6] memory: remove modular usage from non-modular drivers Paul Gortmaker
` (3 preceding siblings ...)
2016-06-17 0:37 ` [PATCH 4/6] memory: tegra20-mc: " Paul Gortmaker
@ 2016-06-17 0:37 ` Paul Gortmaker
2016-06-20 7:50 ` Krzysztof Kozlowski
2016-06-17 0:37 ` [PATCH 6/6] memory: atmel-ebi: " Paul Gortmaker
5 siblings, 1 reply; 14+ messages in thread
From: Paul Gortmaker @ 2016-06-17 0:37 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Pankaj Dubey, Kukjin Kim, Krzysztof Kozlowski,
linux-samsung-soc
The Kconfig currently controlling compilation of this code is:
memory/samsung/Kconfig:config EXYNOS_SROM
memory/samsung/Kconfig: bool "Exynos SROM controller driver" if COMPILE_TEST
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, and it allows us to drop the ".remove"
code for non-modular drivers.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Cc: Pankaj Dubey <pankaj.dubey@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/memory/samsung/exynos-srom.c | 21 +++------------------
1 file changed, 3 insertions(+), 18 deletions(-)
diff --git a/drivers/memory/samsung/exynos-srom.c b/drivers/memory/samsung/exynos-srom.c
index 96756fb4d6bd..b8904e33d3dd 100644
--- a/drivers/memory/samsung/exynos-srom.c
+++ b/drivers/memory/samsung/exynos-srom.c
@@ -11,7 +11,7 @@
*/
#include <linux/io.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_platform.h>
@@ -159,16 +159,6 @@ static int exynos_srom_probe(struct platform_device *pdev)
return of_platform_populate(np, NULL, NULL, dev);
}
-static int exynos_srom_remove(struct platform_device *pdev)
-{
- struct exynos_srom *srom = platform_get_drvdata(pdev);
-
- kfree(srom->reg_offset);
- iounmap(srom->reg_base);
-
- return 0;
-}
-
#ifdef CONFIG_PM_SLEEP
static void exynos_srom_save(void __iomem *base,
struct exynos_srom_reg_dump *rd,
@@ -211,21 +201,16 @@ static const struct of_device_id of_exynos_srom_ids[] = {
},
{},
};
-MODULE_DEVICE_TABLE(of, of_exynos_srom_ids);
static SIMPLE_DEV_PM_OPS(exynos_srom_pm_ops, exynos_srom_suspend, exynos_srom_resume);
static struct platform_driver exynos_srom_driver = {
.probe = exynos_srom_probe,
- .remove = exynos_srom_remove,
.driver = {
.name = "exynos-srom",
.of_match_table = of_exynos_srom_ids,
.pm = &exynos_srom_pm_ops,
+ .suppress_bind_attrs = true,
},
};
-module_platform_driver(exynos_srom_driver);
-
-MODULE_AUTHOR("Pankaj Dubey <pankaj.dubey@samsung.com>");
-MODULE_DESCRIPTION("Exynos SROM Controller Driver");
-MODULE_LICENSE("GPL");
+builtin_platform_driver(exynos_srom_driver);
--
2.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 5/6] memory: samsung/exynos-srom: make it explicitly non-modular
2016-06-17 0:37 ` [PATCH 5/6] memory: samsung/exynos-srom: " Paul Gortmaker
@ 2016-06-20 7:50 ` Krzysztof Kozlowski
0 siblings, 0 replies; 14+ messages in thread
From: Krzysztof Kozlowski @ 2016-06-20 7:50 UTC (permalink / raw)
To: Paul Gortmaker, linux-kernel; +Cc: Pankaj Dubey, Kukjin Kim, linux-samsung-soc
On 06/17/2016 02:37 AM, Paul Gortmaker wrote:
> The Kconfig currently controlling compilation of this code is:
>
> memory/samsung/Kconfig:config EXYNOS_SROM
> memory/samsung/Kconfig: bool "Exynos SROM controller driver" if COMPILE_TEST
>
> ...meaning that it currently is not being built as a module by anyone.
>
> Lets remove the modular code that is essentially orphaned, so that
> when reading the driver there is no doubt it is builtin-only.
>
> We explicitly disallow a driver unbind, since that doesn't have a
> sensible use case anyway, and it allows us to drop the ".remove"
> code for non-modular drivers.
>
> Since module_platform_driver() uses the same init level priority as
> builtin_platform_driver() the init ordering remains unchanged with
> this commit.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> is already contained at the top of the file in the comments.
>
> Cc: Pankaj Dubey <pankaj.dubey@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Cc: linux-samsung-soc@vger.kernel.org
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> drivers/memory/samsung/exynos-srom.c | 21 +++------------------
> 1 file changed, 3 insertions(+), 18 deletions(-)
Thanks, applied for v4.8.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 6/6] memory: atmel-ebi: make it explicitly non-modular
2016-06-17 0:37 [PATCH 0/6] memory: remove modular usage from non-modular drivers Paul Gortmaker
` (4 preceding siblings ...)
2016-06-17 0:37 ` [PATCH 5/6] memory: samsung/exynos-srom: " Paul Gortmaker
@ 2016-06-17 0:37 ` Paul Gortmaker
2016-06-17 7:35 ` Nicolas Ferre
2016-06-21 15:18 ` Alexandre Belloni
5 siblings, 2 replies; 14+ messages in thread
From: Paul Gortmaker @ 2016-06-17 0:37 UTC (permalink / raw)
To: linux-kernel
Cc: Paul Gortmaker, Boris Brezillon, Alexandre Belloni,
Jean-Jacques Hiblot, Nicolas Ferre
The Kconfig currently controlling compilation of this code is:
drivers/memory/Kconfig:config ATMEL_EBI
drivers/memory/Kconfig: bool "Atmel EBI driver"
...meaning that it currently is not being built as a module by anyone.
Lets remove the few remaining modular references, so that when reading
the driver there is no doubt it is builtin-only.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: Jean-Jacques Hiblot <jjhiblot@traphandler.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/memory/atmel-ebi.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/memory/atmel-ebi.c b/drivers/memory/atmel-ebi.c
index 17d9d3f60f20..f87ad6f5d2dc 100644
--- a/drivers/memory/atmel-ebi.c
+++ b/drivers/memory/atmel-ebi.c
@@ -14,7 +14,7 @@
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/atmel-matrix.h>
#include <linux/mfd/syscon/atmel-smc.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/of_device.h>
#include <linux/regmap.h>
@@ -648,7 +648,6 @@ static const struct of_device_id at91_ebi_id_table[] = {
},
{ /* sentinel */ }
};
-MODULE_DEVICE_TABLE(of, at91_ebi_id_table);
static int at91_ebi_dev_disable(struct at91_ebi *ebi, struct device_node *np)
{
@@ -764,8 +763,4 @@ static struct platform_driver at91_ebi_driver = {
.of_match_table = at91_ebi_id_table,
},
};
-module_platform_driver_probe(at91_ebi_driver, at91_ebi_probe);
-
-MODULE_AUTHOR("Jean-Jacques Hiblot <jjhiblot@traphandler.com>");
-MODULE_DESCRIPTION("Atmel EBI driver");
-MODULE_LICENSE("GPL");
+builtin_platform_driver_probe(at91_ebi_driver, at91_ebi_probe);
--
2.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6/6] memory: atmel-ebi: make it explicitly non-modular
2016-06-17 0:37 ` [PATCH 6/6] memory: atmel-ebi: " Paul Gortmaker
@ 2016-06-17 7:35 ` Nicolas Ferre
2016-06-17 7:38 ` Boris Brezillon
2016-06-21 15:18 ` Alexandre Belloni
1 sibling, 1 reply; 14+ messages in thread
From: Nicolas Ferre @ 2016-06-17 7:35 UTC (permalink / raw)
To: Paul Gortmaker, linux-kernel, Alexandre Belloni
Cc: Boris Brezillon, Jean-Jacques Hiblot
Le 17/06/2016 02:37, Paul Gortmaker a écrit :
> The Kconfig currently controlling compilation of this code is:
>
> drivers/memory/Kconfig:config ATMEL_EBI
> drivers/memory/Kconfig: bool "Atmel EBI driver"
>
> ...meaning that it currently is not being built as a module by anyone.
>
> Lets remove the few remaining modular references, so that when reading
> the driver there is no doubt it is builtin-only.
>
> Since module_platform_driver() uses the same init level priority as
> builtin_platform_driver() the init ordering remains unchanged with
> this commit.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> is already contained at the top of the file in the comments.
>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> Cc: Jean-Jacques Hiblot <jjhiblot@traphandler.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
We'll have to take the two atmel-related drivers through our git trees
and arm-soc.
Thanks Paul. Bye.
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> drivers/memory/atmel-ebi.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/memory/atmel-ebi.c b/drivers/memory/atmel-ebi.c
> index 17d9d3f60f20..f87ad6f5d2dc 100644
> --- a/drivers/memory/atmel-ebi.c
> +++ b/drivers/memory/atmel-ebi.c
> @@ -14,7 +14,7 @@
> #include <linux/mfd/syscon.h>
> #include <linux/mfd/syscon/atmel-matrix.h>
> #include <linux/mfd/syscon/atmel-smc.h>
> -#include <linux/module.h>
> +#include <linux/init.h>
> #include <linux/of_device.h>
> #include <linux/regmap.h>
>
> @@ -648,7 +648,6 @@ static const struct of_device_id at91_ebi_id_table[] = {
> },
> { /* sentinel */ }
> };
> -MODULE_DEVICE_TABLE(of, at91_ebi_id_table);
>
> static int at91_ebi_dev_disable(struct at91_ebi *ebi, struct device_node *np)
> {
> @@ -764,8 +763,4 @@ static struct platform_driver at91_ebi_driver = {
> .of_match_table = at91_ebi_id_table,
> },
> };
> -module_platform_driver_probe(at91_ebi_driver, at91_ebi_probe);
> -
> -MODULE_AUTHOR("Jean-Jacques Hiblot <jjhiblot@traphandler.com>");
> -MODULE_DESCRIPTION("Atmel EBI driver");
> -MODULE_LICENSE("GPL");
> +builtin_platform_driver_probe(at91_ebi_driver, at91_ebi_probe);
>
--
Nicolas Ferre
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 6/6] memory: atmel-ebi: make it explicitly non-modular
2016-06-17 7:35 ` Nicolas Ferre
@ 2016-06-17 7:38 ` Boris Brezillon
0 siblings, 0 replies; 14+ messages in thread
From: Boris Brezillon @ 2016-06-17 7:38 UTC (permalink / raw)
To: Nicolas Ferre
Cc: Paul Gortmaker, linux-kernel, Alexandre Belloni, Jean-Jacques Hiblot
On Fri, 17 Jun 2016 09:35:42 +0200
Nicolas Ferre <nicolas.ferre@atmel.com> wrote:
> Le 17/06/2016 02:37, Paul Gortmaker a écrit :
> > The Kconfig currently controlling compilation of this code is:
> >
> > drivers/memory/Kconfig:config ATMEL_EBI
> > drivers/memory/Kconfig: bool "Atmel EBI driver"
> >
> > ...meaning that it currently is not being built as a module by
> > anyone.
> >
> > Lets remove the few remaining modular references, so that when
> > reading the driver there is no doubt it is builtin-only.
> >
> > Since module_platform_driver() uses the same init level priority as
> > builtin_platform_driver() the init ordering remains unchanged with
> > this commit.
> >
> > Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
> >
> > We also delete the MODULE_LICENSE tag etc. since all that
> > information is already contained at the top of the file in the
> > comments.
> >
> > Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> > Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> > Cc: Jean-Jacques Hiblot <jjhiblot@traphandler.com>
> > Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
>
> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
>
> We'll have to take the two atmel-related drivers through our git trees
> and arm-soc.
>
> Thanks Paul. Bye.
>
> > Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> > ---
> > drivers/memory/atmel-ebi.c | 9 ++-------
> > 1 file changed, 2 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/memory/atmel-ebi.c b/drivers/memory/atmel-ebi.c
> > index 17d9d3f60f20..f87ad6f5d2dc 100644
> > --- a/drivers/memory/atmel-ebi.c
> > +++ b/drivers/memory/atmel-ebi.c
> > @@ -14,7 +14,7 @@
> > #include <linux/mfd/syscon.h>
> > #include <linux/mfd/syscon/atmel-matrix.h>
> > #include <linux/mfd/syscon/atmel-smc.h>
> > -#include <linux/module.h>
> > +#include <linux/init.h>
> > #include <linux/of_device.h>
> > #include <linux/regmap.h>
> >
> > @@ -648,7 +648,6 @@ static const struct of_device_id
> > at91_ebi_id_table[] = { },
> > { /* sentinel */ }
> > };
> > -MODULE_DEVICE_TABLE(of, at91_ebi_id_table);
> >
> > static int at91_ebi_dev_disable(struct at91_ebi *ebi, struct
> > device_node *np) {
> > @@ -764,8 +763,4 @@ static struct platform_driver at91_ebi_driver =
> > { .of_match_table = at91_ebi_id_table,
> > },
> > };
> > -module_platform_driver_probe(at91_ebi_driver, at91_ebi_probe);
> > -
> > -MODULE_AUTHOR("Jean-Jacques Hiblot <jjhiblot@traphandler.com>");
> > -MODULE_DESCRIPTION("Atmel EBI driver");
> > -MODULE_LICENSE("GPL");
> > +builtin_platform_driver_probe(at91_ebi_driver, at91_ebi_probe);
> >
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 6/6] memory: atmel-ebi: make it explicitly non-modular
2016-06-17 0:37 ` [PATCH 6/6] memory: atmel-ebi: " Paul Gortmaker
2016-06-17 7:35 ` Nicolas Ferre
@ 2016-06-21 15:18 ` Alexandre Belloni
1 sibling, 0 replies; 14+ messages in thread
From: Alexandre Belloni @ 2016-06-21 15:18 UTC (permalink / raw)
To: Paul Gortmaker
Cc: linux-kernel, Boris Brezillon, Jean-Jacques Hiblot, Nicolas Ferre
On 16/06/2016 at 20:37:48 -0400, Paul Gortmaker wrote :
> The Kconfig currently controlling compilation of this code is:
>
> drivers/memory/Kconfig:config ATMEL_EBI
> drivers/memory/Kconfig: bool "Atmel EBI driver"
>
> ...meaning that it currently is not being built as a module by anyone.
>
> Lets remove the few remaining modular references, so that when reading
> the driver there is no doubt it is builtin-only.
>
> Since module_platform_driver() uses the same init level priority as
> builtin_platform_driver() the init ordering remains unchanged with
> this commit.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> is already contained at the top of the file in the comments.
>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> Cc: Jean-Jacques Hiblot <jjhiblot@traphandler.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> drivers/memory/atmel-ebi.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
Applied, thanks.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread