mmc: add more waiting for erase and status op
authorlintao <lintao@rock-chips.com>
Mon, 26 Jan 2015 01:57:11 +0000 (09:57 +0800)
committerlintao <lintao@rock-chips.com>
Mon, 2 Feb 2015 02:13:21 +0000 (10:13 +0800)
drivers/mmc/core/core.c

index 999c4df766224d4b56d86c27eb36b9afa09ce96c..3e809c2435c8107e8911ac997c3366bfacc901b3 100755 (executable)
@@ -437,7 +437,10 @@ static void mmc_wait_for_req_done(struct mmc_host *host,
        u32 timeout = 0;
 
        if (!mrq->cmd->data) {
-               timeout = 500;
+               if (mrq->cmd->opcode == MMC_ERASE || (mrq->cmd->opcode == MMC_SEND_STATUS))
+                       timeout = 2500000;
+               else
+                       timeout = 500;
        } else {
                timeout = mrq->cmd->data->blocks * mrq->cmd->data->blksz * 500;
                if(!timeout)