On 19 December 2014 at 11:59, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote: > On Fri, Dec 19, 2014 at 11:54:19AM +0100, Ulf Hansson wrote: >> Previously the pm_runtime_put() caused the device to be runtime PM >> suspended, but then immediately being resumed when we add the host. >> >> Prevent this unnecessary runtime PM suspend/resume cycle during >> ->probe() by using the pm_runtime_put_noidle() variant instead. >> >> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> >> --- >> >> Changes in v2: >> Move pm_runtime_put_noidle() after mmc_add_host(). >> >> --- >> drivers/mmc/host/mmci.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c >> index 8232e9a..d2bbd25 100644 >> --- a/drivers/mmc/host/mmci.c >> +++ b/drivers/mmc/host/mmci.c >> @@ -1739,10 +1739,10 @@ static int mmci_probe(struct amba_device *dev, >> >> pm_runtime_set_autosuspend_delay(&dev->dev, 50); >> pm_runtime_use_autosuspend(&dev->dev); >> - pm_runtime_put(&dev->dev); >> >> mmc_add_host(mmc); >> >> + pm_runtime_put_noidle(&dev->dev); > > I think you'd want this to be _put() in this case. It doesn't matter which variant of _put*(). The driver core will invoke pm_request_idle() after really_probe() is done. Kind regards Uffe -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html