提交 15784862 编写于 作者: S Stefan Roese

[PATCH] nand_wait() timeout fixes

Two fixes for the nand_wait() function in
drivers/nand/nand_base.c:

1. Use correct timeouts. The original timeouts in Linux
source are 400ms and 20ms not 40s and 20s

2. Return correct error value in case of timeout. 0 is
interpreted as OK.
Signed-off-by: NRui Sousa <rui.sousa@laposte.net>
Signed-off-by: NStefan Roese <sr@denx.de>
上级 3b58d945
......@@ -838,9 +838,9 @@ static int nand_wait(struct mtd_info *mtd, struct nand_chip *this, int state)
unsigned long timeo;
if (state == FL_ERASING)
timeo = CFG_HZ * 400;
timeo += (HZ * 400) / 1000;
else
timeo = CFG_HZ * 20;
timeo += (HZ * 20) / 1000;
if ((state == FL_ERASING) && (this->options & NAND_IS_AND))
this->cmdfunc(mtd, NAND_CMD_STATUS_MULTI, -1, -1);
......@@ -852,8 +852,8 @@ static int nand_wait(struct mtd_info *mtd, struct nand_chip *this, int state)
while (1) {
if (get_timer(0) > timeo) {
printf("Timeout!");
return 0;
}
return 0x01;
}
if (this->dev_ready) {
if (this->dev_ready(mtd))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册