rk: restore file mode
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / core / bus.c
index 37b4be81e530051d64a16efac47202c6e9dd6f36..0669ed0d73b425d25053a9f5cb8fbdaa4e548ed4 100644 (file)
@@ -127,7 +127,7 @@ static void mmc_bus_shutdown(struct device *dev)
        struct mmc_driver *drv = to_mmc_driver(dev->driver);
        struct mmc_card *card = mmc_dev_to_card(dev);
        struct mmc_host *host = card->host;
-       int ret;
+       int ret = 0;
 
        if (dev->driver && drv->shutdown)
            drv->shutdown(card);
@@ -147,15 +147,16 @@ static int mmc_bus_suspend(struct device *dev)
        struct mmc_driver *drv = to_mmc_driver(dev->driver);
        struct mmc_card *card = mmc_dev_to_card(dev);
        struct mmc_host *host = card->host;
-       int ret;
+       int ret = 0;
 
        if (dev->driver && drv->suspend) {
                ret = drv->suspend(card);
                if (ret)
                        return ret;
        }
-
-       ret = host->bus_ops->suspend(host);
+       
+    if(host->bus_ops->suspend)
+           ret = host->bus_ops->suspend(host);
        return ret;
 }
 
@@ -164,13 +165,15 @@ static int mmc_bus_resume(struct device *dev)
        struct mmc_driver *drv = to_mmc_driver(dev->driver);
        struct mmc_card *card = mmc_dev_to_card(dev);
        struct mmc_host *host = card->host;
-       int ret;
-
-       ret = host->bus_ops->resume(host);
-       if (ret)
-               pr_warn("%s: error %d during resume (card was removed?)\n",
-                       mmc_hostname(host), ret);
+       int ret = 0;
 
+    if(host->bus_ops->resume){
+           ret = host->bus_ops->resume(host);
+           if (ret)
+                   pr_warn("%s: error %d during resume (card was removed?)\n",
+                           mmc_hostname(host), ret);
+    }
+    
        if (dev->driver && drv->resume)
                ret = drv->resume(card);