From e8510191112e9ba05f991a738ef0108d0cd765c6 Mon Sep 17 00:00:00 2001 From: Li Fei Date: Mon, 8 Apr 2013 09:36:39 +0800 Subject: [PATCH] --- yaml --- r: 372799 b: refs/heads/master c: 3bffb800b91bb128b61d83deb01ce63c455d108f h: refs/heads/master i: 372797: d39084e12d9ca8ba8eedfcfc8539ba2095151c88 372795: 6f7d79f47c3d7a8c689859989b2896935969da64 372791: ec051c3ffd5a45746865eb07cb724880d82bf712 372783: 087e5e593372c6e6b01a24b796c73a0b97d87fa2 372767: fb8780172d53941ca5fb107d4762b3036a2481ee 372735: 7fc7431e986c8692dde174b9897d473a271adc76 v: v3 --- [refs] | 2 +- trunk/drivers/mmc/core/sdio.c | 4 +++- trunk/drivers/mmc/core/sdio_bus.c | 3 +-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 2438a3f76b3f..fba34e7b405c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: abd4190f0c820b7f118450b52bb95c0be3a441bd +refs/heads/master: 3bffb800b91bb128b61d83deb01ce63c455d108f diff --git a/trunk/drivers/mmc/core/sdio.c b/trunk/drivers/mmc/core/sdio.c index aa0719a4dfd1..6889a821c1da 100644 --- a/trunk/drivers/mmc/core/sdio.c +++ b/trunk/drivers/mmc/core/sdio.c @@ -861,8 +861,10 @@ static void mmc_sdio_detect(struct mmc_host *host) /* Make sure card is powered before detecting it */ if (host->caps & MMC_CAP_POWER_OFF_CARD) { err = pm_runtime_get_sync(&host->card->dev); - if (err < 0) + if (err < 0) { + pm_runtime_put_noidle(&host->card->dev); goto out; + } } mmc_claim_host(host); diff --git a/trunk/drivers/mmc/core/sdio_bus.c b/trunk/drivers/mmc/core/sdio_bus.c index 8d6bb1821834..546c67c2bbbf 100644 --- a/trunk/drivers/mmc/core/sdio_bus.c +++ b/trunk/drivers/mmc/core/sdio_bus.c @@ -138,7 +138,7 @@ static int sdio_bus_probe(struct device *dev) if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) { ret = pm_runtime_get_sync(dev); if (ret < 0) - goto out; + goto disable_runtimepm; } /* Set the default block size so the driver is sure it's something @@ -158,7 +158,6 @@ static int sdio_bus_probe(struct device *dev) disable_runtimepm: if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) pm_runtime_put_noidle(dev); -out: return ret; }