summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand/nand_base.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-04-04 14:16:42 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2011-04-04 16:42:19 +0200
commitb672f87cc06ab46e16aca4385bcc4fb68e7a488e (patch)
tree9d7f11797e068a9cfd5c4f98cbe2a4e95d446814 /drivers/mtd/nand/nand_base.c
parenta1e9c15260985bdef57cce9692236dfce35170c9 (diff)
downloadbarebox-b672f87cc06ab46e16aca4385bcc4fb68e7a488e.tar.gz
barebox-b672f87cc06ab46e16aca4385bcc4fb68e7a488e.tar.xz
nand: make bbt support optional
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mtd/nand/nand_base.c')
-rw-r--r--drivers/mtd/nand/nand_base.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 373e52a3b9..f641f8d7ed 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -281,11 +281,14 @@ int nand_block_checkbad(struct mtd_info *mtd, loff_t ofs, int getchip,
{
struct nand_chip *chip = mtd->priv;
+#ifdef CONFIG_NAND_BBT
if (!chip->bbt)
return chip->block_bad(mtd, ofs, getchip);
-
/* Return info from the table */
return nand_isbad_bbt(mtd, ofs, allowbbt);
+#else
+ return chip->block_bad(mtd, ofs, getchip);
+#endif
}
/*
@@ -1028,9 +1031,10 @@ static void nand_set_defaults(struct nand_chip *chip, int busw)
chip->read_buf = busw ? nand_read_buf16 : nand_read_buf;
if (!chip->verify_buf)
chip->verify_buf = busw ? nand_verify_buf16 : nand_verify_buf;
+#ifdef CONFIG_NAND_BBT
if (!chip->scan_bbt)
chip->scan_bbt = nand_default_bbt;
-
+#endif
if (!chip->controller) {
chip->controller = &chip->hwcontrol;
}
@@ -1428,9 +1432,12 @@ int nand_scan_tail(struct mtd_info *mtd)
/* Check, if we should skip the bad block table scan */
if (chip->options & NAND_SKIP_BBTSCAN)
return 0;
-
+#ifdef CONFIG_NAND_BBT
/* Build bad block table */
return chip->scan_bbt(mtd);
+#else
+ return 0;
+#endif
}
/**