sdmmc driver: sdio do not run 'mmc_suspend_host'
authorkfx <kfx@rock-chips.com>
Sat, 26 Mar 2011 07:38:08 +0000 (15:38 +0800)
committerkfx <kfx@rock-chips.com>
Sat, 26 Mar 2011 07:38:08 +0000 (15:38 +0800)
drivers/mmc/host/rk29_sdmmc.c

index ec56c954719ab230b1a7d6af044651519ac89300..c50590385422ae236361790fc926aea883e0bdaa 100755 (executable)
@@ -1549,7 +1549,7 @@ static int rk29_sdmmc_suspend(struct platform_device *pdev, pm_message_t state)
        struct rk29_sdmmc *host = platform_get_drvdata(pdev);
 
        printk("Enter rk29_sdmmc_suspend\n");
-       if(host->mmc)
+       if(host->mmc && (strncmp(host->dma_name, "sdio", strlen("sdio")) != 0))
                ret = mmc_suspend_host(host->mmc, state);
        rk29_sdmmc_write(host->regs, SDMMC_CLKENA, 0);
        clk_disable(host->clk);
@@ -1566,7 +1566,7 @@ static int rk29_sdmmc_resume(struct platform_device *pdev)
        printk("Exit rk29_sdmmc_suspend\n");
        clk_enable(host->clk);
         rk29_sdmmc_write(host->regs, SDMMC_CLKENA, 1);
-       if(host->mmc)
+       if(host->mmc && (strncmp(host->dma_name, "sdio", strlen("sdio")) != 0))
                ret = mmc_resume_host(host->mmc);
 #endif
        return ret;