To ensure that complete the request, add udelay(100).
Also  increased the timeout value to 10000.
(Because timeout value is short, there is the case that didn't transfer data)

Signed-off-by: Jaehoon Chung <jh80.ch...@samsung.com>
---
 drivers/mmc/sdhci.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index ac39e48..f71a14b 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -83,7 +83,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, 
struct mmc_data *data,
 {
        unsigned int stat, rdy, mask, timeout, block = 0;
 
-       timeout = 10000;
+       timeout = 100000;
        rdy = SDHCI_INT_SPACE_AVAIL | SDHCI_INT_DATA_AVAIL;
        mask = SDHCI_DATA_AVAILABLE | SDHCI_SPACE_AVAILABLE;
        do {
@@ -239,6 +239,7 @@ int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
                if ((host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) &&
                                !is_aligned && (data->flags == MMC_DATA_READ))
                        memcpy(data->dest, aligned_buffer, trans_bytes);
+               udelay(100);
                return 0;
        }
 
-- 
1.7.4.1
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to