]> git.sur5r.net Git - u-boot/blobdiff - drivers/mmc/davinci_mmc.c
mmc: fix env in mmc with redundant compile error
[u-boot] / drivers / mmc / davinci_mmc.c
index 5d918e6ffcac8139a9dfa28ea344b05a6d06b801..5aa218426f4948eb12f686b0b6099ce58ba9d376 100644 (file)
@@ -69,8 +69,8 @@ static void dmmc_set_clock(struct mmc *mmc, uint clock)
 static int
 dmmc_wait_fifo_status(volatile struct davinci_mmc_regs *regs, uint status)
 {
-       uint mmcstatus1, wdog = WATCHDOG_COUNT;
-       mmcstatus1 = get_val(&regs->mmcst1);
+       uint wdog = WATCHDOG_COUNT;
+
        while (--wdog && ((get_val(&regs->mmcst1) & status) != status))
                udelay(10);
 
@@ -86,9 +86,8 @@ dmmc_wait_fifo_status(volatile struct davinci_mmc_regs *regs, uint status)
 /* Busy bit wait loop for MMCST1 */
 static int dmmc_busy_wait(volatile struct davinci_mmc_regs *regs)
 {
-       uint mmcstatus1, wdog = WATCHDOG_COUNT;
+       uint wdog = WATCHDOG_COUNT;
 
-       mmcstatus1 = get_val(&regs->mmcst1);
        while (--wdog && (get_val(&regs->mmcst1) & MMCST1_BUSY))
                udelay(10);
 
@@ -286,8 +285,11 @@ dmmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
                         */
                        if (bytes_left > fifo_bytes)
                                dmmc_wait_fifo_status(regs, 0x4a);
-                       else if (bytes_left == fifo_bytes)
+                       else if (bytes_left == fifo_bytes) {
                                dmmc_wait_fifo_status(regs, 0x40);
+                               if (cmd->cmdidx == MMC_CMD_SEND_EXT_CSD)
+                                       udelay(600);
+                       }
 
                        for (i = 0; bytes_left && (i < fifo_words); i++) {
                                cmddata = get_val(&regs->mmcdrr);
@@ -388,6 +390,8 @@ int davinci_mmc_init(bd_t *bis, struct davinci_mmc *host)
        mmc->send_cmd = dmmc_send_cmd;
        mmc->set_ios = dmmc_set_ios;
        mmc->init = dmmc_init;
+       mmc->getcd = NULL;
+       mmc->getwp = NULL;
 
        mmc->f_min = 200000;
        mmc->f_max = 25000000;