Merge master.kernel.org:/home/rmk/linux-2.6-serial
[pandora-kernel.git] / drivers / serial / vr41xx_siu.c
index 3f88b8e..df5e871 100644 (file)
@@ -917,7 +917,7 @@ static struct uart_driver siu_uart_driver = {
        .cons           = SERIAL_VR41XX_CONSOLE,
 };
 
-static int siu_probe(struct platform_device *dev)
+static int __devinit siu_probe(struct platform_device *dev)
 {
        struct uart_port *port;
        int num, i, retval;
@@ -951,7 +951,7 @@ static int siu_probe(struct platform_device *dev)
        return 0;
 }
 
-static int siu_remove(struct platform_device *dev)
+static int __devexit siu_remove(struct platform_device *dev)
 {
        struct uart_port *port;
        int i;
@@ -1004,21 +1004,28 @@ static struct platform_device *siu_platform_device;
 
 static struct platform_driver siu_device_driver = {
        .probe          = siu_probe,
-       .remove         = siu_remove,
+       .remove         = __devexit_p(siu_remove),
        .suspend        = siu_suspend,
        .resume         = siu_resume,
        .driver         = {
                .name   = "SIU",
+               .owner  = THIS_MODULE,
        },
 };
 
-static int __devinit vr41xx_siu_init(void)
+static int __init vr41xx_siu_init(void)
 {
        int retval;
 
-       siu_platform_device = platform_device_register_simple("SIU", -1, NULL, 0);
-       if (IS_ERR(siu_platform_device))
-               return PTR_ERR(siu_platform_device);
+       siu_platform_device = platform_device_alloc("SIU", -1);
+       if (!siu_platform_device)
+               return -ENOMEM;
+
+       retval = platform_device_add(siu_platform_device);
+       if (retval < 0) {
+               platform_device_put(siu_platform_device);
+               return retval;
+       }
 
        retval = platform_driver_register(&siu_device_driver);
        if (retval < 0)
@@ -1027,10 +1034,9 @@ static int __devinit vr41xx_siu_init(void)
        return retval;
 }
 
-static void __devexit vr41xx_siu_exit(void)
+static void __exit vr41xx_siu_exit(void)
 {
        platform_driver_unregister(&siu_device_driver);
-
        platform_device_unregister(siu_platform_device);
 }