wl1271: sdio: add suspend/resume support
authorOhad Ben-Cohen <ohad@wizery.com>
Fri, 8 Oct 2010 13:16:27 +0000 (16:16 +0300)
committerLuciano Coelho <luciano.coelho@nokia.com>
Fri, 8 Oct 2010 13:16:27 +0000 (16:16 +0300)
Add required suspend/resume support to prevent the SDIO
core from removing our card completely during system suspend.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Tested-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
drivers/net/wireless/wl12xx/wl1271_sdio.c

index f7bef32f04c952d0b04d1159012c01e8cb434c6b..784ef343264139082d12286a816e7c8fa1dc65f1 100644 (file)
@@ -290,11 +290,31 @@ static void __devexit wl1271_remove(struct sdio_func *func)
        wl1271_free_hw(wl);
 }
 
+static int wl1271_suspend(struct device *dev)
+{
+       /* Tell MMC/SDIO core it's OK to power down the card
+        * (if it isn't already), but not to remove it completely */
+       return 0;
+}
+
+static int wl1271_resume(struct device *dev)
+{
+       return 0;
+}
+
+static const struct dev_pm_ops wl1271_sdio_pm_ops = {
+       .suspend        = wl1271_suspend,
+       .resume         = wl1271_resume,
+};
+
 static struct sdio_driver wl1271_sdio_driver = {
        .name           = "wl1271_sdio",
        .id_table       = wl1271_devices,
        .probe          = wl1271_probe,
        .remove         = __devexit_p(wl1271_remove),
+       .drv = {
+               .pm = &wl1271_sdio_pm_ops,
+       },
 };
 
 static int __init wl1271_init(void)