mmc: core: fix performance regression initializing MMC host controllers
commit0d3e3350d5871c53464be4c92d57198744247005
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 4 Apr 2013 13:41:06 +0000 (4 16:41 +0300)
committerChris Ball <cjb@laptop.org>
Fri, 12 Apr 2013 18:08:07 +0000 (12 14:08 -0400)
treecca13f8eb12a397c4ea8adf9f74de3bcd7c89041
parentf9a94e0a3f18ae4c0245d4a16d0ee20e93fd7bad
mmc: core: fix performance regression initializing MMC host controllers

Commit fa5501890d8974301042e0202d342a6cbe8609f4 introduced a performance
regression by adding mmc_power_up() to mmc_start_host().  mmc_power_up()
is not necessary to host controller initialization, it is part of card
initialization and is performed anyway asynchronously.

This patch allows a driver to leave the power up in asynchronous code
(as it was before).

On my current target platform this reduces driver initialization from:

[    1.313220] initcall sdhci_acpi_driver_init+0x0/0x12 returned 0 after 102008 usecs

to this:

[    1.217209] initcall sdhci_acpi_driver_init+0x0/0x12 returned 0 after 8331 usecs

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/core.c
drivers/mmc/host/sdhci-acpi.c
include/linux/mmc/host.h