From: lhh Date: Fri, 10 Dec 2010 06:23:18 +0000 (+0800) Subject: update rk29 sdmmc X-Git-Tag: firefly_0821_release~10960 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6033f1e646eadb7a4f5991e2c2395d4d975c8d82;p=firefly-linux-kernel-4.4.55.git update rk29 sdmmc --- 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,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/