From: Dmitry Shmidt Date: Thu, 1 Jul 2010 21:47:07 +0000 (-0700) Subject: drivers: mmc: sdhci-tegra: Add suspend/resume processing X-Git-Tag: firefly_0821_release~9833^2~259 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0a37a25e5e5f94ac96430403754a0543dafa718b;p=firefly-linux-kernel-4.4.55.git drivers: mmc: sdhci-tegra: Add suspend/resume processing Signed-off-by: Dmitry Shmidt --- diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 5e2a1f170dfc..3d7f6628bc44 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -177,12 +178,30 @@ static int tegra_sdhci_remove(struct platform_device *pdev) #ifdef CONFIG_PM static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state) { - return -1; + struct tegra_sdhci_host *host = platform_get_drvdata(pdev); + struct mmc_host *mmc = host->sdhci->mmc; + int ret = 0; + + if (mmc->card && (mmc->card->type != MMC_TYPE_SDIO)) { + ret = sdhci_suspend_host(host->sdhci, state); + if (ret) + pr_err("%s: failed, error = %d\n", __func__, ret); + } + return ret; } static int tegra_sdhci_resume(struct platform_device *pdev) { - return -1; + struct tegra_sdhci_host *host = platform_get_drvdata(pdev); + struct mmc_host *mmc = host->sdhci->mmc; + int ret = 0; + + if (mmc->card && (mmc->card->type != MMC_TYPE_SDIO)) { + ret = sdhci_resume_host(host->sdhci); + if (ret) + pr_err("%s: failed, error = %d\n", __func__, ret); + } + return ret; } #else #define tegra_sdhci_suspend NULL