Message ID | 1445206878-12455-5-git-send-email-paul.gortmaker@windriver.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Andy Gross |
Headers | show |
On 10/18/2015 03:21 PM, Paul Gortmaker wrote: > The Kconfig currently controlling compilation of this code is: > > drivers/tty/serial/Kconfig:config SERIAL_MSM > drivers/tty/serial/Kconfig: bool "MSM on-chip serial port support" > > ...meaning that it currently is not being built as a module by anyone. > > Lets remove the modular code that is essentially orphaned, so that > when reading the driver there is no doubt it is builtin-only. > > We 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. > > Since module_init translates to device_initcall in the non-modular > case, the init ordering remains unchanged with this commit. > > We don't replace module.h with init.h since the file already has that. > > We also delete the MODULE_LICENSE tag etc. since all that information > is already contained at the top of the file in the comments. > > Cc: Kumar Gala <galak@codeaurora.org> > Cc: Andy Gross <agross@codeaurora.org> > Cc: David Brown <davidb@codeaurora.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: Jiri Slaby <jslaby@suse.com> > Cc: linux-arm-msm@vger.kernel.org > Cc: linux-soc@vger.kernel.org > Cc: linux-serial@vger.kernel.org > Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> > --- I'd prefer we make the Kconfig a tristate. I'll test out that configuration today, but I don't see why it wouldn't work.
[Re: [PATCH 4/5] drivers/tty/serial: make msm_serial.c explicitly non-modular] On 19/10/2015 (Mon 12:44) Stephen Boyd wrote: > On 10/18/2015 03:21 PM, Paul Gortmaker wrote: > > The Kconfig currently controlling compilation of this code is: > > > > drivers/tty/serial/Kconfig:config SERIAL_MSM > > drivers/tty/serial/Kconfig: bool "MSM on-chip serial port support" > > > > ...meaning that it currently is not being built as a module by anyone. > > > > Lets remove the modular code that is essentially orphaned, so that > > when reading the driver there is no doubt it is builtin-only. > > > > We 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. > > > > Since module_init translates to device_initcall in the non-modular > > case, the init ordering remains unchanged with this commit. > > > > We don't replace module.h with init.h since the file already has that. > > > > We also delete the MODULE_LICENSE tag etc. since all that information > > is already contained at the top of the file in the comments. > > > > Cc: Kumar Gala <galak@codeaurora.org> > > Cc: Andy Gross <agross@codeaurora.org> > > Cc: David Brown <davidb@codeaurora.org> > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > Cc: Jiri Slaby <jslaby@suse.com> > > Cc: linux-arm-msm@vger.kernel.org > > Cc: linux-soc@vger.kernel.org > > Cc: linux-serial@vger.kernel.org > > Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> > > --- > > I'd prefer we make the Kconfig a tristate. I'll test out that > configuration today, but I don't see why it wouldn't work. Sure, if you want to do that then great; as I've said in other threads, it simply doesn't scale for me to be expanding functionality in these kinds of commits, since there are 300+ of them and I can't do much more than just make the code consistent with the Makefile/Kconfig behaviour and still get through them all. When I see a tristate patch for it appear in -next I will drop this. Or if Greg wants to merge the series w/o this one patch, that is fine too -- basically whatever works for Greg, since he's got the larger burden here, maintaining all these different things that he does. Thanks, Paul. -- > > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, > a Linux Foundation Collaborative Project > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c index dcde955475dc..15afa8070b7d 100644 --- a/drivers/tty/serial/msm_serial.c +++ b/drivers/tty/serial/msm_serial.c @@ -23,7 +23,6 @@ #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/hrtimer.h> -#include <linux/module.h> #include <linux/io.h> #include <linux/ioport.h> #include <linux/irq.h> @@ -1601,15 +1600,6 @@ static int msm_serial_probe(struct platform_device *pdev) return uart_add_one_port(&msm_uart_driver, port); } -static int msm_serial_remove(struct platform_device *pdev) -{ - struct uart_port *port = platform_get_drvdata(pdev); - - uart_remove_one_port(&msm_uart_driver, port); - - return 0; -} - static const struct of_device_id msm_match_table[] = { { .compatible = "qcom,msm-uart" }, { .compatible = "qcom,msm-uartdm" }, @@ -1617,11 +1607,11 @@ static const struct of_device_id msm_match_table[] = { }; static struct platform_driver msm_platform_driver = { - .remove = msm_serial_remove, .probe = msm_serial_probe, .driver = { - .name = "msm_serial", - .of_match_table = msm_match_table, + .name = "msm_serial", + .of_match_table = msm_match_table, + .suppress_bind_attrs = true, }, }; @@ -1641,16 +1631,4 @@ static int __init msm_serial_init(void) return ret; } - -static void __exit msm_serial_exit(void) -{ - platform_driver_unregister(&msm_platform_driver); - uart_unregister_driver(&msm_uart_driver); -} - -module_init(msm_serial_init); -module_exit(msm_serial_exit); - -MODULE_AUTHOR("Robert Love <rlove@google.com>"); -MODULE_DESCRIPTION("Driver for msm7x serial device"); -MODULE_LICENSE("GPL"); +device_initcall(msm_serial_init);
The Kconfig currently controlling compilation of this code is: drivers/tty/serial/Kconfig:config SERIAL_MSM drivers/tty/serial/Kconfig: bool "MSM on-chip serial port support" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. We 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. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We don't replace module.h with init.h since the file already has that. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Kumar Gala <galak@codeaurora.org> Cc: Andy Gross <agross@codeaurora.org> Cc: David Brown <davidb@codeaurora.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jiri Slaby <jslaby@suse.com> Cc: linux-arm-msm@vger.kernel.org Cc: linux-soc@vger.kernel.org Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> --- drivers/tty/serial/msm_serial.c | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-)