[[PATCH v3] serial: mps2-uart: make driver explicitly non-modular] On 08/06/2016 (Wed 10:46) Vladimir Murzin wrote: > The Kconfig currently controlling compilation of mps2-uart is: > > config SERIAL_MPS2_UART > bool "MPS2 UART port" > depends on ARM || COMPILE_TEST > > ...meaning that it currently is not being built as a module by anyone. > > Follow commit 89ebc2742769 ("drivers/tty: make serial/mvebu-uart.c > explicitly non-modular") as an example of moving modular code to > non-modular: > > - remove the modular code that is essentially orphaned, so that > when reading the driver there is no doubt it is builtin-only. > > - 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. > > - use device_initcall instead of module_init to keep the init ordering > unchanged. > > 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. > > Reported-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Looks good now. Reviewed-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Thanks, P. -- > Signed-off-by: Vladimir Murzin <vladimir.murzin@xxxxxxx> > --- > > Changelog: > > v2 -> v3 > - use device_initcall instead of arch_initcall > - include init.h explicitly > > v1 -> v2 > - make commit message more verbose > > drivers/tty/serial/mps2-uart.c | 30 +++++------------------------- > 1 file changed, 5 insertions(+), 25 deletions(-) > > diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c > index da9e27d..f3f43b1 100644 > --- a/drivers/tty/serial/mps2-uart.c > +++ b/drivers/tty/serial/mps2-uart.c > @@ -1,4 +1,6 @@ > /* > + * MPS2 UART driver > + * > * Copyright (C) 2015 ARM Limited > * > * Author: Vladimir Murzin <vladimir.murzin@xxxxxxx> > @@ -17,7 +19,7 @@ > #include <linux/console.h> > #include <linux/io.h> > #include <linux/kernel.h> > -#include <linux/module.h> > +#include <linux/init.h> > #include <linux/of_device.h> > #include <linux/of.h> > #include <linux/platform_device.h> > @@ -569,30 +571,20 @@ static int mps2_serial_probe(struct platform_device *pdev) > return 0; > } > > -static int mps2_serial_remove(struct platform_device *pdev) > -{ > - struct mps2_uart_port *mps_port = platform_get_drvdata(pdev); > - > - uart_remove_one_port(&mps2_uart_driver, &mps_port->port); > - > - return 0; > -} > - > #ifdef CONFIG_OF > static const struct of_device_id mps2_match[] = { > { .compatible = "arm,mps2-uart", }, > {}, > }; > -MODULE_DEVICE_TABLE(of, mps2_match); > #endif > > static struct platform_driver mps2_serial_driver = { > .probe = mps2_serial_probe, > - .remove = mps2_serial_remove, > > .driver = { > .name = DRIVER_NAME, > .of_match_table = of_match_ptr(mps2_match), > + .suppress_bind_attrs = true, > }, > }; > > @@ -610,16 +602,4 @@ static int __init mps2_uart_init(void) > > return ret; > } > -module_init(mps2_uart_init); > - > -static void __exit mps2_uart_exit(void) > -{ > - platform_driver_unregister(&mps2_serial_driver); > - uart_unregister_driver(&mps2_uart_driver); > -} > -module_exit(mps2_uart_exit); > - > -MODULE_AUTHOR("Vladimir Murzin <vladimir.murzin@xxxxxxx>"); > -MODULE_DESCRIPTION("MPS2 UART driver"); > -MODULE_LICENSE("GPL v2"); > -MODULE_ALIAS("platform:" DRIVER_NAME); > +device_initcall(mps2_uart_init); > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html