mmc: sdhci-pci: Do not runtime suspend at the end of sdhci_pci_probe()
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 29 Jun 2016 13:24:19 +0000 (16:24 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 25 Jul 2016 08:34:36 +0000 (10:34 +0200)
At the successful conclusion of sdhci_pci_probe(), if runtime pm was
allowed, the device would be runtime suspended.  That wastes a lot of time
during initialization.  Instead leave the device active until the mmc core
scans for a card.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-pci-core.c

index a4dbf7421edc7f9342a18fa7f19cb033d05a0fa8..e8294a29e4cbe84666c56141b72b66feea3f0641 100644 (file)
@@ -1760,11 +1760,12 @@ static void sdhci_pci_remove_slot(struct sdhci_pci_slot *slot)
 
 static void sdhci_pci_runtime_pm_allow(struct device *dev)
 {
-       pm_runtime_put_noidle(dev);
-       pm_runtime_allow(dev);
+       pm_suspend_ignore_children(dev, 1);
        pm_runtime_set_autosuspend_delay(dev, 50);
        pm_runtime_use_autosuspend(dev);
-       pm_suspend_ignore_children(dev, 1);
+       pm_runtime_allow(dev);
+       /* Stay active until mmc core scans for a card */
+       pm_runtime_put_noidle(dev);
 }
 
 static void sdhci_pci_runtime_pm_forbid(struct device *dev)