mmc: core: fix init controller performance regression, updated patch
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 15 Apr 2013 15:27:25 +0000 (11:27 -0400)
committerChris Ball <cjb@laptop.org>
Mon, 15 Apr 2013 15:27:25 +0000 (11:27 -0400)
Add MMC_CAP2_NO_PRESCAN_POWERUP to sdhci-pci.c also, use mmc_power_off()
for MMC_CAP2_NO_PRESCAN_POWERUP.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
[cjb: previously applied v1 of this patch instead of v4]
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/core.c
drivers/mmc/host/sdhci-pci.c

index c1893c9c3c317eb1b77db49136f0e3112ba55c6d..65f9ca7a56ad8c71bf7a363fde839ce6f118d2ed 100644 (file)
@@ -2416,7 +2416,9 @@ void mmc_start_host(struct mmc_host *host)
 {
        host->f_init = max(freqs[0], host->f_min);
        host->rescan_disable = 0;
-       if (!(host->caps2 & MMC_CAP2_NO_PRESCAN_POWERUP))
+       if (host->caps2 & MMC_CAP2_NO_PRESCAN_POWERUP)
+               mmc_power_off(host);
+       else
                mmc_power_up(host);
        mmc_detect_change(host, 0);
 }
index c1f037266bdf0ea62c931c8c975c7968d7451247..0012d3fdc999753da93389868d5f90957f5c7127 100644 (file)
@@ -1280,6 +1280,7 @@ static struct sdhci_pci_slot *sdhci_pci_probe_slot(
 
        host->mmc->pm_caps = MMC_PM_KEEP_POWER | MMC_PM_WAKE_SDIO_IRQ;
        host->mmc->slotno = slotno;
+       host->mmc->caps2 |= MMC_CAP2_NO_PRESCAN_POWERUP;
 
        ret = sdhci_add_host(host);
        if (ret)