On 08/06/16 15:11, Paul Gortmaker wrote: > [[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 for your time and patience! Cheers Vladimir > 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