diff options
Diffstat (limited to 'drivers/pcmcia/sa1100_generic.c')
-rw-r--r-- | drivers/pcmcia/sa1100_generic.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c index 2d0e99751530..edbd8c472628 100644 --- a/drivers/pcmcia/sa1100_generic.c +++ b/drivers/pcmcia/sa1100_generic.c | |||
@@ -32,6 +32,7 @@ | |||
32 | 32 | ||
33 | #include <linux/module.h> | 33 | #include <linux/module.h> |
34 | #include <linux/init.h> | 34 | #include <linux/init.h> |
35 | #include <linux/slab.h> | ||
35 | #include <linux/platform_device.h> | 36 | #include <linux/platform_device.h> |
36 | 37 | ||
37 | #include <pcmcia/cs_types.h> | 38 | #include <pcmcia/cs_types.h> |
@@ -51,7 +52,7 @@ static int (*sa11x0_pcmcia_hw_init[])(struct device *dev) = { | |||
51 | #ifdef CONFIG_SA1100_CERF | 52 | #ifdef CONFIG_SA1100_CERF |
52 | pcmcia_cerf_init, | 53 | pcmcia_cerf_init, |
53 | #endif | 54 | #endif |
54 | #ifdef CONFIG_SA1100_H3600 | 55 | #if defined(CONFIG_SA1100_H3100) || defined(CONFIG_SA1100_H3600) |
55 | pcmcia_h3600_init, | 56 | pcmcia_h3600_init, |
56 | #endif | 57 | #endif |
57 | #ifdef CONFIG_SA1100_SHANNON | 58 | #ifdef CONFIG_SA1100_SHANNON |
@@ -83,18 +84,16 @@ static int sa11x0_drv_pcmcia_probe(struct platform_device *dev) | |||
83 | 84 | ||
84 | static int sa11x0_drv_pcmcia_remove(struct platform_device *dev) | 85 | static int sa11x0_drv_pcmcia_remove(struct platform_device *dev) |
85 | { | 86 | { |
86 | return soc_common_drv_pcmcia_remove(&dev->dev); | 87 | struct skt_dev_info *sinfo = platform_get_drvdata(dev); |
87 | } | 88 | int i; |
88 | 89 | ||
89 | static int sa11x0_drv_pcmcia_suspend(struct platform_device *dev, | 90 | platform_set_drvdata(dev, NULL); |
90 | pm_message_t state) | ||
91 | { | ||
92 | return pcmcia_socket_dev_suspend(&dev->dev); | ||
93 | } | ||
94 | 91 | ||
95 | static int sa11x0_drv_pcmcia_resume(struct platform_device *dev) | 92 | for (i = 0; i < sinfo->nskt; i++) |
96 | { | 93 | soc_pcmcia_remove_one(&sinfo->skt[i]); |
97 | return pcmcia_socket_dev_resume(&dev->dev); | 94 | |
95 | kfree(sinfo); | ||
96 | return 0; | ||
98 | } | 97 | } |
99 | 98 | ||
100 | static struct platform_driver sa11x0_pcmcia_driver = { | 99 | static struct platform_driver sa11x0_pcmcia_driver = { |
@@ -104,8 +103,6 @@ static struct platform_driver sa11x0_pcmcia_driver = { | |||
104 | }, | 103 | }, |
105 | .probe = sa11x0_drv_pcmcia_probe, | 104 | .probe = sa11x0_drv_pcmcia_probe, |
106 | .remove = sa11x0_drv_pcmcia_remove, | 105 | .remove = sa11x0_drv_pcmcia_remove, |
107 | .suspend = sa11x0_drv_pcmcia_suspend, | ||
108 | .resume = sa11x0_drv_pcmcia_resume, | ||
109 | }; | 106 | }; |
110 | 107 | ||
111 | /* sa11x0_pcmcia_init() | 108 | /* sa11x0_pcmcia_init() |