Skip to content

Commit

Permalink
omap_hsmmc: consider MMC_PM_KEEP_POWER on suspend/resume
Browse files Browse the repository at this point in the history
When an mmc card has the MMC_PM_KEEP_POWER flag, it shouldn't
be powered off on suspend (and thus doesn't have to be powered-on
on resume)

While on it, change the suspend flow a bit, to make it a bit
easier to follow.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Acked-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
  • Loading branch information
Eliad Peller authored and Tony Lindgren committed Dec 9, 2011
1 parent 5611cc4 commit 31f9d46
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions drivers/mmc/host/omap_hsmmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2176,13 +2176,7 @@ static int omap_hsmmc_suspend(struct device *dev)
cancel_work_sync(&host->mmc_carddetect_work);
ret = mmc_suspend_host(host->mmc);

if (ret == 0) {
omap_hsmmc_disable_irq(host);
OMAP_HSMMC_WRITE(host->base, HCTL,
OMAP_HSMMC_READ(host->base, HCTL) & ~SDBP);
if (host->got_dbclk)
clk_disable(host->dbclk);
} else {
if (ret) {
host->suspended = 0;
if (host->pdata->resume) {
ret = host->pdata->resume(&pdev->dev,
Expand All @@ -2191,9 +2185,20 @@ static int omap_hsmmc_suspend(struct device *dev)
dev_dbg(mmc_dev(host->mmc),
"Unmask interrupt failed\n");
}
goto err;
}
pm_runtime_put_sync(host->dev);

if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER)) {
omap_hsmmc_disable_irq(host);
OMAP_HSMMC_WRITE(host->base, HCTL,
OMAP_HSMMC_READ(host->base, HCTL) & ~SDBP);
}
if (host->got_dbclk)
clk_disable(host->dbclk);

}
err:
pm_runtime_put_sync(host->dev);
return ret;
}

Expand All @@ -2213,7 +2218,8 @@ static int omap_hsmmc_resume(struct device *dev)
if (host->got_dbclk)
clk_enable(host->dbclk);

omap_hsmmc_conf_bus_power(host);
if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER))
omap_hsmmc_conf_bus_power(host);

if (host->pdata->resume) {
ret = host->pdata->resume(&pdev->dev, host->slot_id);
Expand Down

0 comments on commit 31f9d46

Please sign in to comment.