|
@@ -222,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,
|
|
@@ -261,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);
|