summaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-04-05 11:09:58 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-05 11:09:58 +0200
commit2a6460cbb6f5e4ca02f988c7dac243882d7e080a (patch)
tree7131c44c619fe70f0c178064b56bd4d80d64ca6f /drivers/mtd
parent4eb3478212e49240a1d9e9d8a1e212049829ef68 (diff)
parentac29648413d1a33126ad1f98714717cbee452e55 (diff)
downloadbarebox-2a6460cbb6f5e4ca02f988c7dac243882d7e080a.tar.gz
barebox-2a6460cbb6f5e4ca02f988c7dac243882d7e080a.tar.xz
Merge branch 'next'
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/devices/docg3.c5
-rw-r--r--drivers/mtd/nand/atmel_nand.c6
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;