diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 716bcbb16410..811e85c378a8 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -36,8 +36,6 @@ #include #include -#define CREATE_TRACE_POINTS -#include #include #include @@ -2460,6 +2458,7 @@ static int _mmc_blk_suspend(struct mmc_card *card) struct mmc_blk_data *md = mmc_get_drvdata(card); if (md) { + pm_runtime_get_sync(&card->dev); mmc_queue_suspend(&md->queue); list_for_each_entry(part_md, &md->part, part) { mmc_queue_suspend(&part_md->queue); @@ -2494,6 +2493,7 @@ static int mmc_blk_resume(struct mmc_card *card) list_for_each_entry(part_md, &md->part, part) { mmc_queue_resume(&part_md->queue); } + pm_runtime_put(&card->dev); } return 0; } diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h index 87079fc38011..3384809a548d 100644 --- a/include/linux/mmc/core.h +++ b/include/linux/mmc/core.h @@ -193,6 +193,9 @@ extern void mmc_release_host(struct mmc_host *host); extern void mmc_get_card(struct mmc_card *card); extern void mmc_put_card(struct mmc_card *card); +extern void mmc_get_card(struct mmc_card *card); +extern void mmc_put_card(struct mmc_card *card); + extern int mmc_flush_cache(struct mmc_card *); extern int mmc_detect_card_removed(struct mmc_host *host);