mmc: sdhci-tegra: Set MMC_PM_KEEP_POWER flag in case of built-in device
authorDmitry Shmidt <dimitrysh@google.com>
Mon, 16 Aug 2010 17:57:13 +0000 (10:57 -0700)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:33:36 +0000 (16:33 -0700)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/mmc/host/sdhci-tegra.c

index 2a73fd3e85706290a0de13feaa745773cc93910b..e99cddd74ba25f12467a07d53e98d324c2e38b60 100644 (file)
@@ -155,6 +155,8 @@ static int __devinit tegra_sdhci_probe(struct platform_device *pdev)
        if (plat->force_hs != 0)
                sdhci->quirks |= SDHCI_QUIRK_FORCE_HIGH_SPEED_MODE;
 
+       sdhci->mmc->pm_caps = MMC_PM_KEEP_POWER;
+
        rc = sdhci_add_host(sdhci);
        if (rc)
                goto err_clk_disable;
@@ -218,8 +220,12 @@ static int tegra_sdhci_remove(struct platform_device *pdev)
 static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state)
 {
        struct tegra_sdhci_host *host = platform_get_drvdata(pdev);
+       struct mmc_host *mmc = host->sdhci->mmc;
        int ret;
 
+       if (host->plat->mmc_data.built_in)
+               mmc->pm_flags |= MMC_PM_KEEP_POWER;
+
        ret = sdhci_suspend_host(host->sdhci, state);
        if (ret)
                pr_err("%s: failed, error = %d\n", __func__, ret);