pcmcia: do not autoadd root PCI bus resources
[safe/jmp/linux-2.6] / drivers / pcmcia / pxa2xx_mainstone.c
index 36a5996..92016fe 100644 (file)
 
 #include <pcmcia/ss.h>
 
-#include <asm/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/irq.h>
 
-#include <asm/arch/pxa-regs.h>
-#include <asm/arch/mainstone.h>
+#include <mach/pxa2xx-regs.h>
+#include <mach/mainstone.h>
 
 #include "soc_common.h"
 
@@ -45,7 +44,7 @@ static int mst_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
         * before we enable them as outputs.
         */
 
-       skt->irq = (skt->nr == 0) ? MAINSTONE_S0_IRQ : MAINSTONE_S1_IRQ;
+       skt->socket.pci_irq = (skt->nr == 0) ? MAINSTONE_S0_IRQ : MAINSTONE_S1_IRQ;
        return soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
 }
 
@@ -137,7 +136,7 @@ static void mst_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
 {
 }
 
-static struct pcmcia_low_level mst_pcmcia_ops = {
+static struct pcmcia_low_level mst_pcmcia_ops __initdata = {
        .owner                  = THIS_MODULE,
        .hw_init                = mst_pcmcia_hw_init,
        .hw_shutdown            = mst_pcmcia_hw_shutdown,
@@ -161,9 +160,10 @@ static int __init mst_pcmcia_init(void)
        if (!mst_pcmcia_device)
                return -ENOMEM;
 
-       mst_pcmcia_device->dev.platform_data = &mst_pcmcia_ops;
-
-       ret = platform_device_add(mst_pcmcia_device);
+       ret = platform_device_add_data(mst_pcmcia_device, &mst_pcmcia_ops,
+                                      sizeof(mst_pcmcia_ops));
+       if (ret == 0)
+               ret = platform_device_add(mst_pcmcia_device);
 
        if (ret)
                platform_device_put(mst_pcmcia_device);