diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-05 11:09:58 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-05 11:09:58 +0200 |
commit | 2a6460cbb6f5e4ca02f988c7dac243882d7e080a (patch) | |
tree | 7131c44c619fe70f0c178064b56bd4d80d64ca6f /drivers/mtd | |
parent | 4eb3478212e49240a1d9e9d8a1e212049829ef68 (diff) | |
parent | ac29648413d1a33126ad1f98714717cbee452e55 (diff) | |
download | barebox-2a6460cbb6f5e4ca02f988c7dac243882d7e080a.tar.gz barebox-2a6460cbb6f5e4ca02f988c7dac243882d7e080a.tar.xz |
Merge branch 'next'
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/devices/docg3.c | 5 | ||||
-rw-r--r-- | drivers/mtd/nand/atmel_nand.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c index 88d707c828..7a40908828 100644 --- a/drivers/mtd/devices/docg3.c +++ b/drivers/mtd/devices/docg3.c @@ -21,6 +21,7 @@ #include <driver.h> #include <errno.h> #include <malloc.h> +#include <clock.h> #include <io.h> #include <linux/kernel.h> #include <linux/mtd/mtd.h> @@ -780,9 +781,9 @@ static int doc_get_op_status(struct docg3 *docg3) static int doc_write_erase_wait_status(struct docg3 *docg3) { int status, ret = 0; + uint64_t start = get_time_ns(); - if (!doc_is_ready(docg3)) - mdelay(3000); + while (!is_timeout(start, 3000 * MSECOND) && !doc_is_ready(docg3)); if (!doc_is_ready(docg3)) { doc_dbg("Timeout reached and the chip is still not ready\n"); ret = -EAGAIN; diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c index 0533759235..96624a1c98 100644 --- a/drivers/mtd/nand/atmel_nand.c +++ b/drivers/mtd/nand/atmel_nand.c @@ -407,6 +407,12 @@ static int __init atmel_nand_probe(struct device_d *dev) } } + if (host->board->on_flash_bbt) { + printk(KERN_INFO "atmel_nand: Use On Flash BBT\n"); + nand_chip->options |= NAND_USE_FLASH_BBT; + } + + /* first scan to find the device and get the page size */ if (nand_scan_ident(mtd, 1)) { res = -ENXIO; |