diff options
-rw-r--r-- | drivers/mmc/host/msm_sdcc.c | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c index 24e09454e522..57e00cffb26b 100644 --- a/drivers/mmc/host/msm_sdcc.c +++ b/drivers/mmc/host/msm_sdcc.c | |||
@@ -1057,22 +1057,6 @@ msmsdcc_init_dma(struct msmsdcc_host *host) | |||
1057 | return 0; | 1057 | return 0; |
1058 | } | 1058 | } |
1059 | 1059 | ||
1060 | #ifdef CONFIG_MMC_MSM7X00A_RESUME_IN_WQ | ||
1061 | static void | ||
1062 | do_resume_work(struct work_struct *work) | ||
1063 | { | ||
1064 | struct msmsdcc_host *host = | ||
1065 | container_of(work, struct msmsdcc_host, resume_task); | ||
1066 | struct mmc_host *mmc = host->mmc; | ||
1067 | |||
1068 | if (mmc) { | ||
1069 | mmc_resume_host(mmc); | ||
1070 | if (host->stat_irq) | ||
1071 | enable_irq(host->stat_irq); | ||
1072 | } | ||
1073 | } | ||
1074 | #endif | ||
1075 | |||
1076 | static int | 1060 | static int |
1077 | msmsdcc_probe(struct platform_device *pdev) | 1061 | msmsdcc_probe(struct platform_device *pdev) |
1078 | { | 1062 | { |
@@ -1314,6 +1298,24 @@ msmsdcc_probe(struct platform_device *pdev) | |||
1314 | return ret; | 1298 | return ret; |
1315 | } | 1299 | } |
1316 | 1300 | ||
1301 | #ifdef CONFIG_PM | ||
1302 | #ifdef CONFIG_MMC_MSM7X00A_RESUME_IN_WQ | ||
1303 | static void | ||
1304 | do_resume_work(struct work_struct *work) | ||
1305 | { | ||
1306 | struct msmsdcc_host *host = | ||
1307 | container_of(work, struct msmsdcc_host, resume_task); | ||
1308 | struct mmc_host *mmc = host->mmc; | ||
1309 | |||
1310 | if (mmc) { | ||
1311 | mmc_resume_host(mmc); | ||
1312 | if (host->stat_irq) | ||
1313 | enable_irq(host->stat_irq); | ||
1314 | } | ||
1315 | } | ||
1316 | #endif | ||
1317 | |||
1318 | |||
1317 | static int | 1319 | static int |
1318 | msmsdcc_suspend(struct platform_device *dev, pm_message_t state) | 1320 | msmsdcc_suspend(struct platform_device *dev, pm_message_t state) |
1319 | { | 1321 | { |
@@ -1358,6 +1360,10 @@ msmsdcc_resume(struct platform_device *dev) | |||
1358 | } | 1360 | } |
1359 | return 0; | 1361 | return 0; |
1360 | } | 1362 | } |
1363 | #else | ||
1364 | #define msmsdcc_suspend 0 | ||
1365 | #define msmsdcc_resume 0 | ||
1366 | #endif | ||
1361 | 1367 | ||
1362 | static struct platform_driver msmsdcc_driver = { | 1368 | static struct platform_driver msmsdcc_driver = { |
1363 | .probe = msmsdcc_probe, | 1369 | .probe = msmsdcc_probe, |