Skip to content

Commit

Permalink
mmc: core: Convert the mmc_driver to use the modern PM ops
Browse files Browse the repository at this point in the history
Instead of having specific mmc system PM callbacks for the mmc driver,
let's convert to use the common ones.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
  • Loading branch information
Ulf Hansson committed Nov 10, 2014
1 parent 433b7b1 commit 0967edc
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 18 deletions.
16 changes: 8 additions & 8 deletions drivers/mmc/card/block.c
Original file line number Diff line number Diff line change
Expand Up @@ -2516,15 +2516,17 @@ static void mmc_blk_shutdown(struct mmc_card *card)
_mmc_blk_suspend(card);
}

#ifdef CONFIG_PM
static int mmc_blk_suspend(struct mmc_card *card)
#ifdef CONFIG_PM_SLEEP
static int mmc_blk_suspend(struct device *dev)
{
struct mmc_card *card = mmc_dev_to_card(dev);
return _mmc_blk_suspend(card);
}

static int mmc_blk_resume(struct mmc_card *card)
static int mmc_blk_resume(struct device *dev)
{
struct mmc_blk_data *part_md;
struct mmc_card *card = mmc_dev_to_card(dev);
struct mmc_blk_data *md = mmc_get_drvdata(card);

if (md) {
Expand All @@ -2540,19 +2542,17 @@ static int mmc_blk_resume(struct mmc_card *card)
}
return 0;
}
#else
#define mmc_blk_suspend NULL
#define mmc_blk_resume NULL
#endif

static SIMPLE_DEV_PM_OPS(mmc_blk_pm_ops, mmc_blk_suspend, mmc_blk_resume);

static struct mmc_driver mmc_driver = {
.drv = {
.name = "mmcblk",
.pm = &mmc_blk_pm_ops,
},
.probe = mmc_blk_probe,
.remove = mmc_blk_remove,
.suspend = mmc_blk_suspend,
.resume = mmc_blk_resume,
.shutdown = mmc_blk_shutdown,
};

Expand Down
14 changes: 4 additions & 10 deletions drivers/mmc/core/bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,24 +145,20 @@ static void mmc_bus_shutdown(struct device *dev)
#ifdef CONFIG_PM_SLEEP
static int mmc_bus_suspend(struct device *dev)
{
struct mmc_driver *drv = to_mmc_driver(dev->driver);
struct mmc_card *card = mmc_dev_to_card(dev);
struct mmc_host *host = card->host;
int ret;

if (dev->driver && drv->suspend) {
ret = drv->suspend(card);
if (ret)
return ret;
}
ret = pm_generic_suspend(dev);
if (ret)
return ret;

ret = host->bus_ops->suspend(host);
return ret;
}

static int mmc_bus_resume(struct device *dev)
{
struct mmc_driver *drv = to_mmc_driver(dev->driver);
struct mmc_card *card = mmc_dev_to_card(dev);
struct mmc_host *host = card->host;
int ret;
Expand All @@ -172,9 +168,7 @@ static int mmc_bus_resume(struct device *dev)
pr_warn("%s: error %d during resume (card was removed?)\n",
mmc_hostname(host), ret);

if (dev->driver && drv->resume)
ret = drv->resume(card);

ret = pm_generic_resume(dev);
return ret;
}
#endif
Expand Down

0 comments on commit 0967edc

Please sign in to comment.