aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/onenand
diff options
context:
space:
mode:
authorAdrian Hunter <hunter.programmer@gmail.com>2007-01-10 07:51:26 +0200
committerKyungmin Park <kyungmin.park@samsung.com>2007-01-18 10:59:44 +0900
commit9d03280129e84f8cdfd83f84803a4548e3bf697d (patch)
tree2cce5d630864168ffd2427062094479d3bcf3ec5 /drivers/mtd/onenand
parent[MTD] OneNAND: Fix unlock all status error (diff)
downloadlinux-dev-9d03280129e84f8cdfd83f84803a4548e3bf697d.tar.xz
linux-dev-9d03280129e84f8cdfd83f84803a4548e3bf697d.zip
[MTD] OneNAND: Return an error if a read timeout occurs
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>
Diffstat (limited to 'drivers/mtd/onenand')
-rw-r--r--drivers/mtd/onenand/onenand_base.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index d0f31183d58f..ce1cbdcd355a 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -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;