struct mmc_command *cmd;
struct mmc_data *data;
u32 cmdflags;
- int time_out =60;
+ int time_out=60, time_out2=3;
unsigned long flags;
mrq = host->mrq;
/* wait till resets clear */
while (rk29_sdmmc_read(host->regs, SDMMC_CTRL) & ( SDMMC_CTRL_FIFO_RESET));
local_irq_restore(flags);
+ time_out2--;
+ if(!time_out2)
+ break;
+
}
}
/*¼ì²éFIFO,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/
{
struct mmc_host *prev_mmc = host->mmc;
unsigned long flags;
- int time_out =60;
+ int time_out =60, time_out2=3;
WARN_ON(host->cmd || host->data);
host->curr_mrq = NULL;
/* wait till resets clear */
while (rk29_sdmmc_read(host->regs, SDMMC_CTRL) & ( SDMMC_CTRL_FIFO_RESET));
local_irq_restore(flags);
+ if(!time_out2)
+ break;
}
}
/*¼ì²éFIFO,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/