* [PATCH 2/5] mmc: core: call pm_runtime_put_sync in pm_runtime_get_sync failed case
[not found] <1362037031.6212.3.camel@fli24-HP-Compaq-8100-Elite-CMT-PC>
@ 2013-02-28 7:44 ` Li Fei
2013-04-07 10:39 ` Ohad Ben-Cohen
2013-04-08 1:36 ` [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle " Li Fei
0 siblings, 2 replies; 6+ messages in thread
From: Li Fei @ 2013-02-28 7:44 UTC (permalink / raw)
To: cjb, ulf.hansson, johan.rudholm, subhashj, prakity,
rafael.j.wysocki, thierry.reding, sachin.kamat
Cc: linux-mmc, rjw, linux-kernel, chuansheng.liu, fei.li
Even in failed case of pm_runtime_get_sync, the usage_count
is incremented. In order to keep the usage_count with correct
value and runtime power management to behave correctly, call
pm_runtime_put(_sync) in such case.
Signed-off-by Liu Chuansheng <chuansheng.liu@intel.com>
Signed-off-by: Li Fei <fei.li@intel.com>
---
drivers/mmc/core/sdio.c | 3 +--
drivers/mmc/core/sdio_bus.c | 4 +++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index aa0719a..45ab6f32 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -874,6 +874,7 @@ static void mmc_sdio_detect(struct mmc_host *host)
mmc_release_host(host);
+out:
/*
* Tell PM core it's OK to power off the card now.
*
@@ -887,8 +888,6 @@ static void mmc_sdio_detect(struct mmc_host *host)
*/
if (host->caps & MMC_CAP_POWER_OFF_CARD)
pm_runtime_put_sync(&host->card->dev);
-
-out:
if (err) {
mmc_sdio_remove(host);
diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c
index 5e57048..d572b31 100644
--- a/drivers/mmc/core/sdio_bus.c
+++ b/drivers/mmc/core/sdio_bus.c
@@ -136,8 +136,10 @@ 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)
+ if (ret < 0) {
+ pm_runtime_put_sync(dev);
goto out;
+ }
}
/* Set the default block size so the driver is sure it's something
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/5] mmc: core: call pm_runtime_put_sync in pm_runtime_get_sync failed case
2013-02-28 7:44 ` [PATCH 2/5] mmc: core: call pm_runtime_put_sync in pm_runtime_get_sync failed case Li Fei
@ 2013-04-07 10:39 ` Ohad Ben-Cohen
2013-04-08 1:36 ` Li, Fei
2013-04-08 1:36 ` [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle " Li Fei
1 sibling, 1 reply; 6+ messages in thread
From: Ohad Ben-Cohen @ 2013-04-07 10:39 UTC (permalink / raw)
To: Li Fei
Cc: Chris Ball, ulf.hansson, johan.rudholm, subhashj, Philip Rakity,
rafael.j.wysocki, thierry.reding, sachin.kamat,
linux-mmc@vger.kernel.org, Rafael J. Wysocki,
linux-kernel@vger.kernel.org, Chuansheng Liu
Hi Li,
On Thu, Feb 28, 2013 at 9:44 AM, Li Fei <fei.li@intel.com> wrote:
> Even in failed case of pm_runtime_get_sync, the usage_count
> is incremented. In order to keep the usage_count with correct
> value and runtime power management to behave correctly, call
> pm_runtime_put(_sync) in such case.
As with the remoteproc case, it is probably better to call the
put_noidle variant here. This way you are sure not to erroneously
invoke any underlying pm handler where your only intention is to fix
usage_count.
Thanks,
Ohad.
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH 2/5] mmc: core: call pm_runtime_put_sync in pm_runtime_get_sync failed case
2013-04-07 10:39 ` Ohad Ben-Cohen
@ 2013-04-08 1:36 ` Li, Fei
0 siblings, 0 replies; 6+ messages in thread
From: Li, Fei @ 2013-04-08 1:36 UTC (permalink / raw)
To: Ohad Ben-Cohen
Cc: Chris Ball, ulf.hansson@linaro.org, johan.rudholm@stericsson.com,
subhashj@codeaurora.org, Philip Rakity, Wysocki, Rafael J,
thierry.reding@avionic-design.de, sachin.kamat@linaro.org,
linux-mmc@vger.kernel.org, Rafael J. Wysocki,
linux-kernel@vger.kernel.org, Liu, Chuansheng
>
> Hi Li,
>
> On Thu, Feb 28, 2013 at 9:44 AM, Li Fei <fei.li@intel.com> wrote:
> > Even in failed case of pm_runtime_get_sync, the usage_count
> > is incremented. In order to keep the usage_count with correct
> > value and runtime power management to behave correctly, call
> > pm_runtime_put(_sync) in such case.
>
> As with the remoteproc case, it is probably better to call the
> put_noidle variant here. This way you are sure not to erroneously
> invoke any underlying pm handler where your only intention is to fix
> usage_count.
Thanks for your check and feedback, and will update it in V2 soon.
Regards,
Fei
>
> Thanks,
> Ohad.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle in pm_runtime_get_sync failed case
2013-02-28 7:44 ` [PATCH 2/5] mmc: core: call pm_runtime_put_sync in pm_runtime_get_sync failed case Li Fei
2013-04-07 10:39 ` Ohad Ben-Cohen
@ 2013-04-08 1:36 ` Li Fei
2013-04-08 12:48 ` Ohad Ben-Cohen
1 sibling, 1 reply; 6+ messages in thread
From: Li Fei @ 2013-04-08 1:36 UTC (permalink / raw)
To: cjb, ohad
Cc: ulf.hansson, johan.rudholm, subhashj, rafael.j.wysocki,
thierry.reding, sachin.kamat, linux-mmc, rjw, linux-kernel,
chuansheng.liu, fei.li
Even in failed case of pm_runtime_get_sync, the usage_count
is incremented. In order to keep the usage_count with correct
value and runtime power management to behave correctly, call
pm_runtime_put_noidle in such case.
Signed-off-by Liu Chuansheng <chuansheng.liu@intel.com>
Signed-off-by: Li Fei <fei.li@intel.com>
---
drivers/mmc/core/sdio.c | 4 +++-
drivers/mmc/core/sdio_bus.c | 3 +--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index aa0719a..6889a82 100644
--- a/drivers/mmc/core/sdio.c
+++ b/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/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c
index 5e57048..7bfefb5 100644
--- a/drivers/mmc/core/sdio_bus.c
+++ b/drivers/mmc/core/sdio_bus.c
@@ -137,7 +137,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
@@ -157,7 +157,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;
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle in pm_runtime_get_sync failed case
2013-04-08 1:36 ` [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle " Li Fei
@ 2013-04-08 12:48 ` Ohad Ben-Cohen
2013-04-12 18:15 ` Chris Ball
0 siblings, 1 reply; 6+ messages in thread
From: Ohad Ben-Cohen @ 2013-04-08 12:48 UTC (permalink / raw)
To: Li Fei
Cc: Chris Ball, ulf.hansson, johan.rudholm, subhashj,
rafael.j.wysocki, thierry.reding, sachin.kamat,
linux-mmc@vger.kernel.org, Rafael J. Wysocki,
linux-kernel@vger.kernel.org, Chuansheng Liu, Coelho, Luciano
On Mon, Apr 8, 2013 at 4:36 AM, Li Fei <fei.li@intel.com> wrote:
> Even in failed case of pm_runtime_get_sync, the usage_count
> is incremented. In order to keep the usage_count with correct
> value and runtime power management to behave correctly, call
> pm_runtime_put_noidle in such case.
>
> Signed-off-by Liu Chuansheng <chuansheng.liu@intel.com>
> Signed-off-by: Li Fei <fei.li@intel.com>
Acked-by: Ohad Ben-Cohen <ohad@wizery.com>
BTW, Li, could you please move to _noidle in those other places where
your previous patch was already applied? I think we have at least the
12xx driver (cc'ing Luca).
Thanks!
Ohad.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle in pm_runtime_get_sync failed case
2013-04-08 12:48 ` Ohad Ben-Cohen
@ 2013-04-12 18:15 ` Chris Ball
0 siblings, 0 replies; 6+ messages in thread
From: Chris Ball @ 2013-04-12 18:15 UTC (permalink / raw)
To: Ohad Ben-Cohen
Cc: Li Fei, ulf.hansson, johan.rudholm, subhashj, rafael.j.wysocki,
thierry.reding, sachin.kamat, linux-mmc@vger.kernel.org,
Rafael J. Wysocki, linux-kernel@vger.kernel.org, Chuansheng Liu,
Coelho, Luciano
Hi,
On Mon, Apr 08 2013, Ohad Ben-Cohen wrote:
> On Mon, Apr 8, 2013 at 4:36 AM, Li Fei <fei.li@intel.com> wrote:
>> Even in failed case of pm_runtime_get_sync, the usage_count
>> is incremented. In order to keep the usage_count with correct
>> value and runtime power management to behave correctly, call
>> pm_runtime_put_noidle in such case.
>>
>> Signed-off-by Liu Chuansheng <chuansheng.liu@intel.com>
>> Signed-off-by: Li Fei <fei.li@intel.com>
>
> Acked-by: Ohad Ben-Cohen <ohad@wizery.com>
Thanks, pushed this patch to mmc-next for 3.10.
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-04-12 18:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1362037031.6212.3.camel@fli24-HP-Compaq-8100-Elite-CMT-PC>
2013-02-28 7:44 ` [PATCH 2/5] mmc: core: call pm_runtime_put_sync in pm_runtime_get_sync failed case Li Fei
2013-04-07 10:39 ` Ohad Ben-Cohen
2013-04-08 1:36 ` Li, Fei
2013-04-08 1:36 ` [PATCH 2/5 V2] mmc: core: call pm_runtime_put_noidle " Li Fei
2013-04-08 12:48 ` Ohad Ben-Cohen
2013-04-12 18:15 ` Chris Ball
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox