aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/sa1100_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia/sa1100_generic.c')
-rw-r--r--drivers/pcmcia/sa1100_generic.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c
index 2d0e99751530..8db86b90c200 100644
--- a/drivers/pcmcia/sa1100_generic.c
+++ b/drivers/pcmcia/sa1100_generic.c
@@ -51,7 +51,7 @@ static int (*sa11x0_pcmcia_hw_init[])(struct device *dev) = {
51#ifdef CONFIG_SA1100_CERF 51#ifdef CONFIG_SA1100_CERF
52 pcmcia_cerf_init, 52 pcmcia_cerf_init,
53#endif 53#endif
54#ifdef CONFIG_SA1100_H3600 54#if defined(CONFIG_SA1100_H3100) || defined(CONFIG_SA1100_H3600)
55 pcmcia_h3600_init, 55 pcmcia_h3600_init,
56#endif 56#endif
57#ifdef CONFIG_SA1100_SHANNON 57#ifdef CONFIG_SA1100_SHANNON
@@ -83,7 +83,16 @@ static int sa11x0_drv_pcmcia_probe(struct platform_device *dev)
83 83
84static int sa11x0_drv_pcmcia_remove(struct platform_device *dev) 84static int sa11x0_drv_pcmcia_remove(struct platform_device *dev)
85{ 85{
86 return soc_common_drv_pcmcia_remove(&dev->dev); 86 struct skt_dev_info *sinfo = platform_get_drvdata(dev);
87 int i;
88
89 platform_set_drvdata(dev, NULL);
90
91 for (i = 0; i < sinfo->nskt; i++)
92 soc_pcmcia_remove_one(&sinfo->skt[i]);
93
94 kfree(sinfo);
95 return 0;
87} 96}
88 97
89static int sa11x0_drv_pcmcia_suspend(struct platform_device *dev, 98static int sa11x0_drv_pcmcia_suspend(struct platform_device *dev,