diff options
Diffstat (limited to 'drivers/pcmcia/sa1100_generic.c')
-rw-r--r-- | drivers/pcmcia/sa1100_generic.c | 13 |
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 | ||
84 | static int sa11x0_drv_pcmcia_remove(struct platform_device *dev) | 84 | static 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 | ||
89 | static int sa11x0_drv_pcmcia_suspend(struct platform_device *dev, | 98 | static int sa11x0_drv_pcmcia_suspend(struct platform_device *dev, |