mmc: omap_hsmmc: add hibernation support

Setting a dev_pm_ops suspend/resume pair but not a set of
hibernation functions means those pm functions will not be
called upon hibernation.
Fix this by using SET_SYSTEM_SLEEP_PM_OPS, which appropriately
assigns the suspend and hibernation handlers and move
omap_hsmmc_x callbacks under CONFIG_PM_SLEEP to avoid build warnings.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[Grygorii.Strashko@linaro.org: rebased on top of K4.0]
Signed-off-by: Grygorii Strashko <grygorii.strashko@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Russ Dill 2015-02-27 13:24:34 +02:00 committed by Ulf Hansson
parent cde592cbe5
commit 3d3bbfbdfd
1 changed files with 2 additions and 7 deletions

View File

@ -2231,7 +2231,7 @@ static int omap_hsmmc_remove(struct platform_device *pdev)
return 0; return 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM_SLEEP
static int omap_hsmmc_suspend(struct device *dev) static int omap_hsmmc_suspend(struct device *dev)
{ {
struct omap_hsmmc_host *host = dev_get_drvdata(dev); struct omap_hsmmc_host *host = dev_get_drvdata(dev);
@ -2287,10 +2287,6 @@ static int omap_hsmmc_resume(struct device *dev)
pm_runtime_put_autosuspend(host->dev); pm_runtime_put_autosuspend(host->dev);
return 0; return 0;
} }
#else
#define omap_hsmmc_suspend NULL
#define omap_hsmmc_resume NULL
#endif #endif
static int omap_hsmmc_runtime_suspend(struct device *dev) static int omap_hsmmc_runtime_suspend(struct device *dev)
@ -2371,8 +2367,7 @@ static int omap_hsmmc_runtime_resume(struct device *dev)
} }
static struct dev_pm_ops omap_hsmmc_dev_pm_ops = { static struct dev_pm_ops omap_hsmmc_dev_pm_ops = {
.suspend = omap_hsmmc_suspend, SET_SYSTEM_SLEEP_PM_OPS(omap_hsmmc_suspend, omap_hsmmc_resume)
.resume = omap_hsmmc_resume,
.runtime_suspend = omap_hsmmc_runtime_suspend, .runtime_suspend = omap_hsmmc_runtime_suspend,
.runtime_resume = omap_hsmmc_runtime_resume, .runtime_resume = omap_hsmmc_runtime_resume,
}; };