On 27 October 2017 at 21:21, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > In order to reuse this driver for the Socionext Synquacer SC2A11 SoC, > which inherited this IP from Fujitsu, remove the ARCH_MB86S7X Kconfig > dependency, and revert the changes that prevent it from being built as > a module. > > This reverts commits d65aa4b67b4f47f303bdeaef1e4d42ef18e6b293 and > d5610e514e92144d19bd5e39e5cf3804bbf85f3e. > > Cc: Geliang Tang <geliangtang@xxxxxxxxx> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> > Cc: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > --- > drivers/gpio/Kconfig | 3 +-- > drivers/gpio/gpio-mb86s7x.c | 12 +++++++++++- > 2 files changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig > index 3f80f167ed56..bf40a948e4cc 100644 > --- a/drivers/gpio/Kconfig > +++ b/drivers/gpio/Kconfig > @@ -286,8 +286,7 @@ config GPIO_LYNXPOINT > Requires ACPI device enumeration code to set up a platform device. > > config GPIO_MB86S7X > - bool "GPIO support for Fujitsu MB86S7x Platforms" > - depends on ARCH_MB86S7X || COMPILE_TEST > + tristate "GPIO support for Fujitsu MB86S7x Platforms" > help > Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs. > > diff --git a/drivers/gpio/gpio-mb86s7x.c b/drivers/gpio/gpio-mb86s7x.c > index 94d772677ed6..6e1598471733 100644 > --- a/drivers/gpio/gpio-mb86s7x.c > +++ b/drivers/gpio/gpio-mb86s7x.c > @@ -17,6 +17,7 @@ > #include <linux/io.h> > #include <linux/init.h> > #include <linux/clk.h> > +#include <linux/module.h> > #include <linux/err.h> > #include <linux/errno.h> > #include <linux/ioport.h> > @@ -209,6 +210,7 @@ static const struct of_device_id mb86s70_gpio_dt_ids[] = { > { .compatible = "fujitsu,mb86s70-gpio" }, > { /* sentinel */ } > }; > +MODULE_DEVICE_TABLE(of, mb86s70_gpio_dt_ids); > > static struct platform_driver mb86s70_gpio_driver = { > .driver = { > @@ -219,4 +221,12 @@ static struct platform_driver mb86s70_gpio_driver = { > .remove = mb86s70_gpio_remove, > }; > > -builtin_platform_driver(mb86s70_gpio_driver); > +static int __init mb86s70_gpio_init(void) > +{ > + return platform_driver_register(&mb86s70_gpio_driver); > +} > +module_init(mb86s70_gpio_init); > + > +MODULE_DESCRIPTION("MB86S7x GPIO Driver"); > +MODULE_ALIAS("platform:mb86s70-gpio"); > +MODULE_LICENSE("GPL"); > -- > 2.11.0 > The .c changes are a straight revert of the above patches, but perhaps we should fold this in on top: diff --git a/drivers/gpio/gpio-mb86s7x.c b/drivers/gpio/gpio-mb86s7x.c index 5cd77dcdbb16..3134c0d2bfe4 100644 --- a/drivers/gpio/gpio-mb86s7x.c +++ b/drivers/gpio/gpio-mb86s7x.c @@ -215,12 +215,7 @@ static struct platform_driver mb86s70_gpio_driver = { .probe = mb86s70_gpio_probe, .remove = mb86s70_gpio_remove, }; - -static int __init mb86s70_gpio_init(void) -{ - return platform_driver_register(&mb86s70_gpio_driver); -} -module_init(mb86s70_gpio_init); +module_platform_driver(mb86s70_gpio_driver); MODULE_DESCRIPTION("MB86S7x GPIO Driver"); MODULE_ALIAS("platform:mb86s70-gpio"); so that the module can actually be unloaded again. -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html