Hi All,
Here's a patch fixing the issue that resp buf would be filled with invalid data 
if command timed out in u-boot s3c24xx mci driver.

---
 cpu/arm920t/s3c24x0/mmc.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: 
uboot-git-650149a53dbdd48bf6dfef90930c8ab182adb512/cpu/arm920t/s3c24x0/mmc.c
===================================================================
--- 
uboot-git-650149a53dbdd48bf6dfef90930c8ab182adb512.orig/cpu/arm920t/s3c24x0/mmc.c
   2008-12-15 07:49:58.000000000 +0800
+++ 
uboot-git-650149a53dbdd48bf6dfef90930c8ab182adb512/cpu/arm920t/s3c24x0/mmc.c    
    2008-12-15 07:52:27.000000000 +0800
@@ -71,6 +71,7 @@
 
        u_int32_t ccon, csta;
        u_int32_t csta_rdy_bit = S3C2410_SDICMDSTAT_CMDSENT;
+       int is_timeout = 0;
 
        memset(resp, 0, sizeof(resp));
 
@@ -102,6 +103,7 @@
                if (csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) {
                        printf("===============> MMC CMD Timeout\n");
                        sdi->SDICSTA |= S3C2410_SDICMDSTAT_CMDTIMEOUT;
+                       is_timeout = 1;
                        break;
                }
        }
@@ -110,7 +112,7 @@
 
        sdi->SDICSTA |= csta_rdy_bit;
 
-       if (flags & CMD_F_RESP) {
+       if (flags & CMD_F_RESP && !is_timeout) {
                resp[0] = sdi->SDIRSP0;
                resp[1] = sdi->SDIRSP1;
                resp[2] = sdi->SDIRSP2;



      ___________________________________________________________ 
  好玩贺卡等你发,邮箱贺卡全新上线! 
http://card.mail.cn.yahoo.com/

Attachment: fix_s3c24xx_mci_cmd_timeout.patch
Description: Binary data

Reply via email to