From 6033f1e646eadb7a4f5991e2c2395d4d975c8d82 Mon Sep 17 00:00:00 2001 From: lhh Date: Fri, 10 Dec 2010 14:23:18 +0800 Subject: [PATCH] update rk29 sdmmc --- drivers/mmc/host/rk29_sdmmc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/rk29_sdmmc.c b/drivers/mmc/host/rk29_sdmmc.c index a1a26b9b74cd..99c268f83568 100755 --- a/drivers/mmc/host/rk29_sdmmc.c +++ b/drivers/mmc/host/rk29_sdmmc.c @@ -520,7 +520,7 @@ static void rk29_sdmmc_start_request(struct rk29_sdmmc *host) 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; @@ -535,6 +535,10 @@ static void rk29_sdmmc_start_request(struct rk29_sdmmc *host) /* 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,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/ @@ -686,7 +690,7 @@ static void rk29_sdmmc_request_end(struct rk29_sdmmc *host, struct mmc_request * { 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; @@ -702,6 +706,8 @@ static void rk29_sdmmc_request_end(struct rk29_sdmmc *host, struct mmc_request * /* 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,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/ -- 2.34.1