From: Jaehoon Chung Date: Thu, 8 Nov 2012 08:35:29 +0000 (+0900) Subject: mmc: dw_mmc: relocate where dw_mci_setup_bus() is called from X-Git-Tag: v3.8-rc1~190^2~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bf7cb2244c80b1390c51dfc33a88b56ce88a8986;p=platform%2Fkernel%2Flinux-3.10.git mmc: dw_mmc: relocate where dw_mci_setup_bus() is called from To ensure the stable clock need to enable before set the DW_MMC_CARD_NEED_INIT flag. If set DW_MMC_CARD_NEED_INIT flag, wait for 80-clock before first command after power-up. Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Acked-by: Seungwon Jeon Acked-by: Will Newton Signed-off-by: Chris Ball --- diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 6785d62..fa8b14cc 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -683,9 +683,6 @@ static void __dw_mci_start_request(struct dw_mci *host, if (host->pdata->select_slot) host->pdata->select_slot(slot->id); - /* Slot specific timing and width adjustment */ - dw_mci_setup_bus(slot, false); - host->cur_slot = slot; host->mrq = mrq; @@ -812,6 +809,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) if (drv_data && drv_data->set_ios) drv_data->set_ios(slot->host, ios); + /* Slot specific timing and width adjustment */ + dw_mci_setup_bus(slot, false); + switch (ios->power_mode) { case MMC_POWER_UP: set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);