nfsd4: setclientid_confirm callback-change fixes
[safe/jmp/linux-2.6] / drivers / pcmcia / pxa2xx_sharpsl.c
index fd36473..1cd02f5 100644 (file)
 #include <linux/platform_device.h>
 
 #include <asm/mach-types.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
 #include <asm/irq.h>
 #include <asm/hardware/scoop.h>
 
 #include "soc_common.h"
 
 #define        NO_KEEP_VS 0x0001
-
-/* PCMCIA to Scoop linkage
-
-   There is no easy way to link multiple scoop devices into one
-   single entity for the pxa2xx_pcmcia device so this structure
-   is used which is setup by the platform code
-*/
-struct scoop_pcmcia_config *platform_scoop_config;
 #define SCOOP_DEV platform_scoop_config->devs
 
 static void sharpsl_pcmcia_init_reset(struct soc_pcmcia_socket *skt)
@@ -230,7 +222,7 @@ static void sharpsl_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
        sharpsl_pcmcia_init_reset(skt);
 }
 
-static struct pcmcia_low_level sharpsl_pcmcia_ops = {
+static struct pcmcia_low_level sharpsl_pcmcia_ops __initdata = {
        .owner                  = THIS_MODULE,
        .hw_init                = sharpsl_pcmcia_hw_init,
        .hw_shutdown            = sharpsl_pcmcia_hw_shutdown,
@@ -269,10 +261,12 @@ static int __init sharpsl_pcmcia_init(void)
        if (!sharpsl_pcmcia_device)
                return -ENOMEM;
 
-       sharpsl_pcmcia_device->dev.platform_data = &sharpsl_pcmcia_ops;
-       sharpsl_pcmcia_device->dev.parent = platform_scoop_config->devs[0].dev;
-
-       ret = platform_device_add(sharpsl_pcmcia_device);
+       ret = platform_device_add_data(sharpsl_pcmcia_device,
+                       &sharpsl_pcmcia_ops, sizeof(sharpsl_pcmcia_ops));
+       if (ret == 0) {
+               sharpsl_pcmcia_device->dev.parent = platform_scoop_config->devs[0].dev;
+               ret = platform_device_add(sharpsl_pcmcia_device);
+       }
 
        if (ret)
                platform_device_put(sharpsl_pcmcia_device);
@@ -291,3 +285,4 @@ module_exit(sharpsl_pcmcia_exit);
 
 MODULE_DESCRIPTION("Sharp SL Series PCMCIA Support");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:pxa2xx-pcmcia");