From b25ac92ad830dd7213e33ea5550e54608537f42d Mon Sep 17 00:00:00 2001 From: Martin Fuzzey Date: Thu, 16 Apr 2009 22:00:36 +0200 Subject: [PATCH] --- yaml --- r: 145519 b: refs/heads/master c: 18489fa2ba4c170d96ffc1a41f7b9002dcb983b7 h: refs/heads/master i: 145517: 41d1bc34004d3adaf1237c624ddc370f1f5e2190 145515: 3ff51976675a5b1af1c693dfb3cb82a28a3bb10f 145511: 19e66b5e1587e9a7f3a5952d256a1fc8ab07533f 145503: d2264fc02e5a9a12420e93b4a9592b046b1c8ef9 v: v3 --- [refs] | 2 +- trunk/drivers/mmc/host/mxcmmc.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index dbca0de20c19..8e868c5db74b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 85b843227a9b8c1a27ebd354a80c89aef067f2ca +refs/heads/master: 18489fa2ba4c170d96ffc1a41f7b9002dcb983b7 diff --git a/trunk/drivers/mmc/host/mxcmmc.c b/trunk/drivers/mmc/host/mxcmmc.c index 5950102113f4..dcc9cdb2a4df 100644 --- a/trunk/drivers/mmc/host/mxcmmc.c +++ b/trunk/drivers/mmc/host/mxcmmc.c @@ -140,6 +140,8 @@ struct mxcmci_host { struct work_struct datawork; }; +static void mxcmci_set_clk_rate(struct mxcmci_host *host, unsigned int clk_ios); + static inline int mxcmci_use_dma(struct mxcmci_host *host) { return host->do_dma; @@ -345,8 +347,11 @@ static int mxcmci_poll_status(struct mxcmci_host *host, u32 mask) stat = readl(host->base + MMC_REG_STATUS); if (stat & STATUS_ERR_MASK) return stat; - if (time_after(jiffies, timeout)) + if (time_after(jiffies, timeout)) { + mxcmci_softreset(host); + mxcmci_set_clk_rate(host, host->clock); return STATUS_TIME_OUT_READ; + } if (stat & mask) return 0; cpu_relax();