[MTD] OneNAND: Return an error if a read timeout occurs
authorAdrian Hunter <hunter.programmer@gmail.com>
Wed, 10 Jan 2007 05:51:26 +0000 (07:51 +0200)
committerKyungmin Park <kyungmin.park@samsung.com>
Thu, 18 Jan 2007 01:59:44 +0000 (10:59 +0900)
If OneNAND is operating within specification, all operations should easily be
completed within the 20 millisecond timeout.
This patch faithlessly adds a check for the timeout and returns an error in
that case.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
drivers/mtd/onenand/onenand_base.c

index d0f31183d58f324a4b44dbf596d0312bb16dd91f..ce1cbdcd355a32a00b758be87a27db5eb5cef7a4 100644 (file)
@@ -333,6 +333,9 @@ static int onenand_wait(struct mtd_info *mtd, int state)
                        } else if (ecc & ONENAND_ECC_1BIT_ALL)
                                mtd->ecc_stats.corrected++;
                }
+       } else if (state == FL_READING) {
+               printk(KERN_ERR "onenand_wait: read timeout! ctrl=0x%04x intr=0x%04x\n", ctrl, interrupt);
+               return -EIO;
        }
 
        return 0;