serial: fix platform driver hotplug/coldplug
authorKay Sievers <kay.sievers@vrfy.org>
Tue, 15 Apr 2008 21:34:35 +0000 (14:34 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 16 Apr 2008 02:35:40 +0000 (19:35 -0700)
Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is
prefixed with "platform:".  Add MODULE_ALIAS() to the hotpluggable serial
platform drivers, to re-enable auto loading.

NOTE that Kconfig for some of these drivers doesn't allow modular builds, and
thus doesn't match the driver source's unload support.  Presumably their
unload code is buggy and/or weakly tested...

[dbrownell@users.sourceforge.net: more drivers, registration fixes]
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 files changed:
drivers/serial/atmel_serial.c
drivers/serial/bfin_5xx.c
drivers/serial/imx.c
drivers/serial/mcf.c
drivers/serial/mpc52xx_uart.c
drivers/serial/mpsc.c
drivers/serial/netx-serial.c
drivers/serial/pnx8xxx_uart.c
drivers/serial/pxa.c
drivers/serial/s3c2410.c
drivers/serial/sa1100.c
drivers/serial/sc26xx.c
drivers/serial/sh-sci.c
drivers/serial/uartlite.c
drivers/serial/vr41xx_siu.c

index 430997e33fc434cef3f6a93e7de30ba0c2e50480..55492fa095a2fab26fe7505143f662d665261fbf 100644 (file)
@@ -1577,3 +1577,4 @@ module_exit(atmel_serial_exit);
 MODULE_AUTHOR("Rick Bronson");
 MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Rick Bronson");
 MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:atmel_usart");
index 0aa345b9a38bd8d605cb2112153fc49f388f8ec8..46bb47f37b9a276089332cf23dbb5462eea8c47e 100644 (file)
@@ -1243,6 +1243,7 @@ static struct platform_driver bfin_serial_driver = {
        .resume         = bfin_serial_resume,
        .driver         = {
                .name   = "bfin-uart",
        .resume         = bfin_serial_resume,
        .driver         = {
                .name   = "bfin-uart",
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -1301,3 +1302,4 @@ MODULE_AUTHOR("Aubrey.Li <aubrey.li@analog.com>");
 MODULE_DESCRIPTION("Blackfin generic serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(BFIN_SERIAL_MAJOR);
 MODULE_DESCRIPTION("Blackfin generic serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(BFIN_SERIAL_MAJOR);
+MODULE_ALIAS("platform:bfin-uart");
index 56af1f566a4cd1b0ebfc7d78f71646ca267face9..16ba9ac7a566b29ce016b0703f217897adc0a3ed 100644 (file)
@@ -1090,6 +1090,7 @@ static struct platform_driver serial_imx_driver = {
        .resume         = serial_imx_resume,
        .driver         = {
                .name   = "imx-uart",
        .resume         = serial_imx_resume,
        .driver         = {
                .name   = "imx-uart",
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -1124,3 +1125,4 @@ module_exit(imx_serial_exit);
 MODULE_AUTHOR("Sascha Hauer");
 MODULE_DESCRIPTION("IMX generic serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Sascha Hauer");
 MODULE_DESCRIPTION("IMX generic serial port driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:imx-uart");
index e76fc72c9b3610ab54dd2aec9b5814653e2257fe..7e164e0cd2116d05fef1d1e131cc859b0bcc1d15 100644 (file)
@@ -649,5 +649,6 @@ module_exit(mcf_exit);
 MODULE_AUTHOR("Greg Ungerer <gerg@snapgear.com>");
 MODULE_DESCRIPTION("Freescale ColdFire UART driver");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Greg Ungerer <gerg@snapgear.com>");
 MODULE_DESCRIPTION("Freescale ColdFire UART driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:mcfuart");
 
 /****************************************************************************/
 
 /****************************************************************************/
index a638f23c6c6110189e25284f148c1e9671ec8535..d93b3578c5e22f67fdb48b074478c042b81e31bf 100644 (file)
@@ -1188,6 +1188,8 @@ mpc52xx_uart_resume(struct platform_device *dev)
 }
 #endif
 
 }
 #endif
 
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:mpc52xx-psc");
 
 static struct platform_driver mpc52xx_uart_platform_driver = {
        .probe          = mpc52xx_uart_probe,
 
 static struct platform_driver mpc52xx_uart_platform_driver = {
        .probe          = mpc52xx_uart_probe,
index cb3a91967742b83f96e30c09225f03f4bca80de5..e8819c43f57de24376b49d7abb432cb81769e60c 100644 (file)
@@ -1964,6 +1964,7 @@ static struct platform_driver mpsc_driver = {
        .remove = mpsc_drv_remove,
        .driver = {
                .name   = MPSC_CTLR_NAME,
        .remove = mpsc_drv_remove,
        .driver = {
                .name   = MPSC_CTLR_NAME,
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -2007,3 +2008,4 @@ MODULE_DESCRIPTION("Generic Marvell MPSC serial/UART driver $Revision: 1.00 $");
 MODULE_VERSION(MPSC_VERSION);
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(MPSC_MAJOR);
 MODULE_VERSION(MPSC_VERSION);
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(MPSC_MAJOR);
+MODULE_ALIAS("platform:" MPSC_CTLR_NAME);
index b56f7db4503100097471c7e037e76a2a967d1349..3123ffeac8ad682e4ec383cd9d9606bc095270fe 100644 (file)
@@ -713,6 +713,7 @@ static struct platform_driver serial_netx_driver = {
 
        .driver         = {
                .name   = DRIVER_NAME,
 
        .driver         = {
                .name   = DRIVER_NAME,
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -745,3 +746,4 @@ module_exit(netx_serial_exit);
 MODULE_AUTHOR("Sascha Hauer");
 MODULE_DESCRIPTION("NetX serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Sascha Hauer");
 MODULE_DESCRIPTION("NetX serial port driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRIVER_NAME);
index 8d01c59e8d041d06e695373bfde00b0eb70dfefe..d0e5a79ea635982a79cff1b8877a4ee71b12ef5f 100644 (file)
@@ -850,3 +850,4 @@ MODULE_AUTHOR("Embedded Alley Solutions, Inc.");
 MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR);
 MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR);
+MODULE_ALIAS("platform:pnx8xxx-uart");
index 352fcb8926a62ca506cb0f7f33d8df4a8f22e778..b4f7ffb7688d16b99facc3bd859042836bc66246 100644 (file)
@@ -833,6 +833,7 @@ static struct platform_driver serial_pxa_driver = {
        .resume         = serial_pxa_resume,
        .driver         = {
                .name   = "pxa2xx-uart",
        .resume         = serial_pxa_resume,
        .driver         = {
                .name   = "pxa2xx-uart",
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -861,4 +862,4 @@ module_init(serial_pxa_init);
 module_exit(serial_pxa_exit);
 
 MODULE_LICENSE("GPL");
 module_exit(serial_pxa_exit);
 
 MODULE_LICENSE("GPL");
-
+MODULE_ALIAS("platform:pxa2xx-uart");
index 45de19366030f248dbda1e33d457e8c75cac7e93..4ffa2585429a4965d979b67cea2ba870357baef5 100644 (file)
@@ -1935,3 +1935,7 @@ console_initcall(s3c24xx_serial_initconsole);
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
 MODULE_DESCRIPTION("Samsung S3C2410/S3C2440/S3C2412 Serial port driver");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
 MODULE_DESCRIPTION("Samsung S3C2410/S3C2440/S3C2412 Serial port driver");
+MODULE_ALIAS("platform:s3c2400-uart");
+MODULE_ALIAS("platform:s3c2410-uart");
+MODULE_ALIAS("platform:s3c2412-uart");
+MODULE_ALIAS("platform:s3c2440-uart");
index 58a83c27e14b44e5dc11574a3f893f62121a478c..67b2338913c2d08c7fd58a86836053b899cfbf0d 100644 (file)
@@ -884,6 +884,7 @@ static struct platform_driver sa11x0_serial_driver = {
        .resume         = sa1100_serial_resume,
        .driver         = {
                .name   = "sa11x0-uart",
        .resume         = sa1100_serial_resume,
        .driver         = {
                .name   = "sa11x0-uart",
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -917,3 +918,4 @@ MODULE_AUTHOR("Deep Blue Solutions Ltd");
 MODULE_DESCRIPTION("SA1100 generic serial port driver $Revision: 1.50 $");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_SA1100_MAJOR);
 MODULE_DESCRIPTION("SA1100 generic serial port driver $Revision: 1.50 $");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_SA1100_MAJOR);
+MODULE_ALIAS("platform:sa11x0-uart");
index a350b6d2a181e117e2eac51a9f9fcae0a56b4134..ae2a9e2df777fee57f4b320cbf5523558587f03f 100644 (file)
@@ -732,6 +732,7 @@ static struct platform_driver sc26xx_driver = {
        .remove = __devexit_p(sc26xx_driver_remove),
        .driver = {
                .name   = "SC26xx",
        .remove = __devexit_p(sc26xx_driver_remove),
        .driver = {
                .name   = "SC26xx",
+               .owner  = THIS_MODULE,
        },
 };
 
        },
 };
 
@@ -753,3 +754,4 @@ MODULE_AUTHOR("Thomas Bogendörfer");
 MODULE_DESCRIPTION("SC681/SC2692 serial driver");
 MODULE_VERSION("1.0");
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("SC681/SC2692 serial driver");
 MODULE_VERSION("1.0");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:SC26xx");
index 9d244d1644e14031d9cf24280c7280449a9a15cc..eff593080d4fe8358886fd02e88672704d21bfa8 100644 (file)
@@ -1552,3 +1552,4 @@ module_init(sci_init);
 module_exit(sci_exit);
 
 MODULE_LICENSE("GPL");
 module_exit(sci_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:sh-sci");
index 4e06ab6bcb6e80c15c5f71b723e912f9e7f53d08..b565d5a37499799ac3e9873a757fb1b7dc5d1df5 100644 (file)
@@ -561,6 +561,9 @@ static int __devexit ulite_remove(struct platform_device *pdev)
        return ulite_release(&pdev->dev);
 }
 
        return ulite_release(&pdev->dev);
 }
 
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:uartlite");
+
 static struct platform_driver ulite_platform_driver = {
        .probe  = ulite_probe,
        .remove = __devexit_p(ulite_remove),
 static struct platform_driver ulite_platform_driver = {
        .probe  = ulite_probe,
        .remove = __devexit_p(ulite_remove),
index 6fd51b0022caabc3b11ddc60eda522c2bdcf1e62..98ab649c1ff9fb0ce3ad5023df1864dd4e05da66 100644 (file)
@@ -960,3 +960,6 @@ static void __exit vr41xx_siu_exit(void)
 
 module_init(vr41xx_siu_init);
 module_exit(vr41xx_siu_exit);
 
 module_init(vr41xx_siu_init);
 module_exit(vr41xx_siu_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:SIU");