Skip to contentSkip to conversation

gpio: pl061: Support building as module

PATCH In review Rob Herring 2 participants 2 messages Apr 9, 2020 – Apr 14, 2020 GPIO

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gpio: pl061: Support building as module

Enable building the PL061 GPIO driver as a module.

This does change the initcall level when built-in. This shouldn't be a problem as any user should support deferred probe by now. A scan of DT based platforms at least didn't reveal any users that would be a problem.

Cc Linus Walleij <[email protected]>
Cc Bartosz Golaszewski <[email protected]>
---
 drivers/gpio/Kconfig      | 2 +-
 drivers/gpio/gpio-pl061.c | 9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)
drivers/gpio/Kconfig +1 -1
index b8013cf90064..f1ef878f615b 100644
@@ -422,7 +422,7 @@ config GPIO_OMAP
 	  Say yes here to enable GPIO support for TI OMAP SoCs.
 
 config GPIO_PL061
-	bool "PrimeCell PL061 GPIO support"
+	tristate "PrimeCell PL061 GPIO support"
 	depends on ARM_AMBA
 	select IRQ_DOMAIN
 	select GPIOLIB_IRQCHIP
drivers/gpio/gpio-pl061.c +4 -5
index 5df7782e348f..cf0d5e9b6f2c 100644
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/irqchip/chained_irq.h>
+#include <linux/module.h>
 #include <linux/bitops.h>
 #include <linux/gpio/driver.h>
 #include <linux/device.h>
@@ -413,6 +414,7 @@ static const struct amba_id pl061_ids[] = {
 	},
 	{ 0, 0 },
 };
+MODULE_DEVICE_TABLE(amba, pl061_ids);
 
 static struct amba_driver pl061_gpio_driver = {
 	.drv = {
@@ -424,9 +426,6 @@ static struct amba_driver pl061_gpio_driver = {
 	.id_table	= pl061_ids,
 	.probe		= pl061_probe,
 };
+module_amba_driver(pl061_gpio_driver);
 
-static int __init pl061_gpio_init(void)
-{
-	return amba_driver_register(&pl061_gpio_driver);
-}
-device_initcall(pl061_gpio_init);
+MODULE_LICENSE("GPL v2");
Signature · 1 line
2.20.1
#1 lore raw

czw., 9 kwi 2020 o 03:41 Rob Herring <[email protected]> napisał(a):

Quoted 63 lines

Enable building the PL061 GPIO driver as a module.

This does change the initcall level when built-in. This shouldn't be a problem as any user should support deferred probe by now. A scan of DT based platforms at least didn't reveal any users that would be a problem.

Cc Linus Walleij <[email protected]>
Cc Bartosz Golaszewski <[email protected]>
---
 drivers/gpio/Kconfig      | 2 +-
 drivers/gpio/gpio-pl061.c | 9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)
drivers/gpio/Kconfig +1 -1
index b8013cf90064..f1ef878f615b 100644
@@ -422,7 +422,7 @@ config GPIO_OMAP
          Say yes here to enable GPIO support for TI OMAP SoCs.
 
 config GPIO_PL061
-       bool "PrimeCell PL061 GPIO support"
+       tristate "PrimeCell PL061 GPIO support"
        depends on ARM_AMBA
        select IRQ_DOMAIN
        select GPIOLIB_IRQCHIP
drivers/gpio/gpio-pl061.c +4 -6
index 5df7782e348f..cf0d5e9b6f2c 100644
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/irqchip/chained_irq.h>
+#include <linux/module.h>
 #include <linux/bitops.h>
 #include <linux/gpio/driver.h>
 #include <linux/device.h>
@@ -413,6 +414,7 @@ static const struct amba_id pl061_ids[] = {
        },
        { 0, 0 },
 };
+MODULE_DEVICE_TABLE(amba, pl061_ids);
 
 static struct amba_driver pl061_gpio_driver = {
        .drv = {
@@ -424,9 +426,6 @@ static struct amba_driver pl061_gpio_driver = {
        .id_table       = pl061_ids,
        .probe          = pl061_probe,
 };
+module_amba_driver(pl061_gpio_driver);
 
-static int __init pl061_gpio_init(void)
-{
-       return amba_driver_register(&pl061_gpio_driver);
-}
-device_initcall(pl061_gpio_init);
+MODULE_LICENSE("GPL v2");
--
Quoted 2 lines

2.20.1

Patch applied, thanks!

Bart