]> git.karo-electronics.de Git - linux-beck.git/commitdiff
mtd: docg3 increase write/erase timeout
authorRobert Jarzmik <robert.jarzmik@free.fr>
Thu, 22 Mar 2012 20:00:51 +0000 (21:00 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Tue, 27 Mar 2012 00:03:03 +0000 (01:03 +0100)
After several tries with ubifs, it appears empirically that constructor
provided figures for erase/write timeouts are underestimated. A timeout
of 100ms seems to work with a 5 years worn chip, and no timeouts occur
anymore.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/devices/docg3.c

index 62e01113c317954861174b1506f4f04d0353c227..be88eb6217cbcb664c9d5c5fa6206c2b4f33bc5b 100644 (file)
@@ -1116,10 +1116,10 @@ static int doc_get_op_status(struct docg3 *docg3)
  */
 static int doc_write_erase_wait_status(struct docg3 *docg3)
 {
-       int status, ret = 0;
+       int i, status, ret = 0;
 
-       if (!doc_is_ready(docg3))
-               usleep_range(3000, 3000);
+       for (i = 0; !doc_is_ready(docg3) && i < 5; i++)
+               msleep(20);
        if (!doc_is_ready(docg3)) {
                doc_dbg("Timeout reached and the chip is still not ready\n");
                ret = -EAGAIN;