Message ID | 20200419170810.5738-13-robh@kernel.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Modularizing Versatile Express | expand |
On Sun, Apr 19, 2020 at 7:08 PM Rob Herring <robh@kernel.org> wrote: > > Enable building the vexpress-sysreg driver as a module. > - > - /* Need the sysreg early, before any other device... */ > - for_each_matching_node(node, vexpress_sysreg_match) > - of_platform_device_create(node, NULL, NULL); Is this safe to remove? If yes, please mention it in the changelog. Arnd
On Mon, Apr 20, 2020 at 10:32 AM Arnd Bergmann <arnd@arndb.de> wrote: > > On Sun, Apr 19, 2020 at 7:08 PM Rob Herring <robh@kernel.org> wrote: > > > > Enable building the vexpress-sysreg driver as a module. > > > - > > - /* Need the sysreg early, before any other device... */ > > - for_each_matching_node(node, vexpress_sysreg_match) > > - of_platform_device_create(node, NULL, NULL); > > Is this safe to remove? If yes, please mention it in the changelog. Well, yes and no (I think). This was purely to instantiate the device early before the default DT probing would do it (as all the parents are 'simple-bus' the default would descend to these nodes). It's fine after patch 14 for sure, but before that I think it is changing the initcall/probe order. So I'll stick this between patch 15 and 16. Rob
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index b1311dea2da1..792766558328 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -2028,7 +2028,7 @@ config MCP_UCB1200_TS endmenu config MFD_VEXPRESS_SYSREG - bool "Versatile Express System Registers" + tristate "Versatile Express System Registers" depends on VEXPRESS_CONFIG && GPIOLIB default y select GPIO_GENERIC_PLATFORM diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c index 9fb37fa689e0..eeeeb1d26d5d 100644 --- a/drivers/mfd/vexpress-sysreg.c +++ b/drivers/mfd/vexpress-sysreg.c @@ -8,6 +8,7 @@ #include <linux/err.h> #include <linux/io.h> #include <linux/mfd/core.h> +#include <linux/module.h> #include <linux/of_platform.h> #include <linux/platform_data/syscon.h> #include <linux/platform_device.h> @@ -151,6 +152,7 @@ static const struct of_device_id vexpress_sysreg_match[] = { { .compatible = "arm,vexpress-sysreg", }, {}, }; +MODULE_DEVICE_TABLE(of, vexpress_sysreg_match); static struct platform_driver vexpress_sysreg_driver = { .driver = { @@ -160,14 +162,5 @@ static struct platform_driver vexpress_sysreg_driver = { .probe = vexpress_sysreg_probe, }; -static int __init vexpress_sysreg_init(void) -{ - struct device_node *node; - - /* Need the sysreg early, before any other device... */ - for_each_matching_node(node, vexpress_sysreg_match) - of_platform_device_create(node, NULL, NULL); - - return platform_driver_register(&vexpress_sysreg_driver); -} -core_initcall(vexpress_sysreg_init); +module_platform_driver(vexpress_sysreg_driver); +MODULE_LICENSE("GPL v2");
Enable building the vexpress-sysreg driver as a module. Cc: Liviu Dudau <liviu.dudau@arm.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Lee Jones <lee.jones@linaro.org> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring <robh@kernel.org> --- drivers/mfd/Kconfig | 2 +- drivers/mfd/vexpress-sysreg.c | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-)