mmc: dw_mmc: relocate where dw_mci_setup_bus() is called from
authorJaehoon Chung <jh80.chung@samsung.com>
Thu, 8 Nov 2012 08:35:29 +0000 (17:35 +0900)
committerChris Ball <cjb@laptop.org>
Thu, 6 Dec 2012 18:55:11 +0000 (13:55 -0500)
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 <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
Acked-by: Will Newton <will.newton@imgtec.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/dw_mmc.c

index 6785d62ef047cc9956dd626e3d9783c23b6b3e3f..fa8b14cce33aec2753f00e42e1a28a8fd25eb217 100644 (file)
@@ -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);