浏览代码

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>
Russ Dill 10 年之前
父节点
当前提交
3d3bbfbdfd
共有 1 个文件被更改,包括 2 次插入7 次删除
  1. 2 7
      drivers/mmc/host/omap_hsmmc.c

+ 2 - 7
drivers/mmc/host/omap_hsmmc.c

@@ -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,
-	.resume		= omap_hsmmc_resume,
+	SET_SYSTEM_SLEEP_PM_OPS(omap_hsmmc_suspend, 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,
 };
 };