git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PCMCIA: soc_common: push socket removal down to SoC specific support
[safe/jmp/linux-2.6]
/
drivers
/
pcmcia
/
pxa2xx_base.c
diff --git
a/drivers/pcmcia/pxa2xx_base.c
b/drivers/pcmcia/pxa2xx_base.c
index
c49a726
..
8a91106
100644
(file)
--- a/
drivers/pcmcia/pxa2xx_base.c
+++ b/
drivers/pcmcia/pxa2xx_base.c
@@
-297,28
+297,41
@@
static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
static int pxa2xx_drv_pcmcia_remove(struct platform_device *dev)
{
static int pxa2xx_drv_pcmcia_remove(struct platform_device *dev)
{
- return soc_common_drv_pcmcia_remove(&dev->dev);
+ struct skt_dev_info *sinfo = platform_get_drvdata(dev);
+ int i;
+
+ platform_set_drvdata(dev, NULL);
+
+ for (i = 0; i < sinfo->nskt; i++)
+ soc_pcmcia_remove_one(&sinfo->skt[i]);
+
+ kfree(sinfo);
+ return 0;
}
}
-static int pxa2xx_drv_pcmcia_suspend(struct
platform_device *dev, pm_message_t state
)
+static int pxa2xx_drv_pcmcia_suspend(struct
device *dev
)
{
{
- return pcmcia_socket_dev_suspend(
&dev->dev, state
);
+ return pcmcia_socket_dev_suspend(
dev
);
}
}
-static int pxa2xx_drv_pcmcia_resume(struct
platform_
device *dev)
+static int pxa2xx_drv_pcmcia_resume(struct device *dev)
{
{
- pxa2xx_configure_sockets(
&dev->
dev);
- return pcmcia_socket_dev_resume(
&dev->
dev);
+ pxa2xx_configure_sockets(dev);
+ return pcmcia_socket_dev_resume(dev);
}
}
+static struct dev_pm_ops pxa2xx_drv_pcmcia_pm_ops = {
+ .suspend = pxa2xx_drv_pcmcia_suspend,
+ .resume = pxa2xx_drv_pcmcia_resume,
+};
+
static struct platform_driver pxa2xx_pcmcia_driver = {
.probe = pxa2xx_drv_pcmcia_probe,
.remove = pxa2xx_drv_pcmcia_remove,
static struct platform_driver pxa2xx_pcmcia_driver = {
.probe = pxa2xx_drv_pcmcia_probe,
.remove = pxa2xx_drv_pcmcia_remove,
- .suspend = pxa2xx_drv_pcmcia_suspend,
- .resume = pxa2xx_drv_pcmcia_resume,
.driver = {
.name = "pxa2xx-pcmcia",
.owner = THIS_MODULE,
.driver = {
.name = "pxa2xx-pcmcia",
.owner = THIS_MODULE,
+ .pm = &pxa2xx_drv_pcmcia_pm_ops,
},
};
},
};