diff mbox

[4/5] drivers/tty/serial: make msm_serial.c explicitly non-modular

Message ID 1445206878-12455-5-git-send-email-paul.gortmaker@windriver.com (mailing list archive)
State Accepted, archived
Delegated to: Andy Gross
Headers show

Commit Message

Paul Gortmaker Oct. 18, 2015, 10:21 p.m. UTC
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(-)

Comments

Stephen Boyd Oct. 19, 2015, 7:44 p.m. UTC | #1
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.
Paul Gortmaker Oct. 19, 2015, 8:19 p.m. UTC | #2
[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 mbox

Patch

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);