From: kfx Date: Fri, 22 Apr 2011 10:32:01 +0000 (+0800) Subject: update sdmmc driver X-Git-Tag: firefly_0821_release~10431 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=55c5588d6bd740c19dab2a1c54c8417b5ab70941;p=firefly-linux-kernel-4.4.55.git update sdmmc driver --- diff --git a/drivers/mmc/host/rk29_sdmmc.c b/drivers/mmc/host/rk29_sdmmc.c index 9129aaf806c8..c5488c12d857 100755 --- a/drivers/mmc/host/rk29_sdmmc.c +++ b/drivers/mmc/host/rk29_sdmmc.c @@ -478,7 +478,7 @@ static void rk29_sdmmc_request_done(struct rk29_sdmmc *host,struct mmc_request * host->state = STATE_IDLE; rk29_sdmmc_set_mrq_status(host, MRQ_REQUEST_DONE); mmc_request_done(host->mmc, mrq); - + del_timer(&host->monitor_timer); spin_lock(&host->lock); } @@ -748,9 +748,9 @@ static void rk29_sdmmc_request(struct mmc_host *mmc, struct mmc_request *mrq) host->mrq = mrq; if(!mrq->data) - timeout = 500; + timeout = 5000; else - timeout = 500 + mrq->data->timeout_ns/1000000; + timeout = 5000 + mrq->data->timeout_ns/1000000; mod_timer(&host->monitor_timer, jiffies + msecs_to_jiffies(timeout)); if (!rk29_sdmmc_get_cd(mmc)) { @@ -1069,6 +1069,8 @@ static void rk29_sdmmc_dma_complete(void *arg, int size, enum rk29_dma_buffresul static void rk29_sdmmc_detect_change(struct rk29_sdmmc *host) { spin_lock(&host->lock); + + del_timer(&host->monitor_timer); rk29_sdmmc_write(host->regs, SDMMC_RINTSTS, ~SDMMC_INT_SDIO); rk29_sdmmc_write(host->regs, SDMMC_INTMASK, rk29_sdmmc_read(host->regs, SDMMC_INTMASK) &