}
 
 
-static struct pcmcia_low_level cmx270_pcmcia_ops = {
+static struct pcmcia_low_level cmx270_pcmcia_ops __initdata = {
        .owner                  = THIS_MODULE,
        .hw_init                = cmx270_pcmcia_hw_init,
        .hw_shutdown            = cmx270_pcmcia_shutdown,
        if (!cmx270_pcmcia_device)
                return -ENOMEM;
 
-       cmx270_pcmcia_device->dev.platform_data = &cmx270_pcmcia_ops;
+       ret = platform_device_add_data(cmx270_pcmcia_device, &cmx270_pcmcia_ops,
+                                      sizeof(cmx270_pcmcia_ops));
 
-       printk(KERN_INFO "Registering cm-x270 PCMCIA interface.\n");
-       ret = platform_device_add(cmx270_pcmcia_device);
+       if (ret == 0) {
+               printk(KERN_INFO "Registering cm-x270 PCMCIA interface.\n");
+               ret = platform_device_add(cmx270_pcmcia_device);
+       }
 
        if (ret)
                platform_device_put(cmx270_pcmcia_device);
 
 {
 }
 
-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,
        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);
 
        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,
        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);