[PATCH 5/7] nand: fix build error when BBT not enabled.
Marc Reilly
marc at cpdesign.com.au
Sun Jul 29 03:41:52 EDT 2012
This fixes following error when bad blocks config option is not enabled:
drivers/built-in.o: In function `nand_erase_nand':
drivers/mtd/nand/nand_write.c:721: undefined reference to `nand_update_bbt'
drivers/built-in.o: In function `nand_default_block_markbad':
drivers/mtd/nand/nand_write.c:76: undefined reference to `nand_update_bbt'
make: *** [barebox] Error 1
Signed-off-by: Marc Reilly <marc at cpdesign.com.au>
---
drivers/mtd/nand/nand_write.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/nand_write.c b/drivers/mtd/nand/nand_write.c
index 13b6c89..0fd49d6 100644
--- a/drivers/mtd/nand/nand_write.c
+++ b/drivers/mtd/nand/nand_write.c
@@ -72,9 +72,15 @@ int nand_default_block_markbad(struct mtd_info *mtd, loff_t ofs)
chip->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1);
/* Do we have a flash based bad block table ? */
- if (chip->options & NAND_USE_FLASH_BBT)
+ if (chip->options & NAND_USE_FLASH_BBT) {
+#if defined(CONFIG_NAND_BBT)
ret = nand_update_bbt(mtd, ofs);
- else {
+#else
+ printk(KERN_WARNING "NAND trying to use BBT,"
+ "but not supported\n");
+ ret = 0;
+#endif
+ } else {
/* We write two bytes, so we dont have to mess with 16 bit
* access
*/
@@ -714,11 +720,13 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
for (chipnr = 0; chipnr < chip->numchips; chipnr++) {
if (!rewrite_bbt[chipnr])
continue;
+#if defined(CONFIG_NAND_BBT)
/* update the BBT for chip */
MTD_DEBUG(MTD_DEBUG_LEVEL0, "nand_erase_nand: nand_update_bbt "
"(%d:0x%0x 0x%0x)\n", chipnr, rewrite_bbt[chipnr],
chip->bbt_td->pages[chipnr]);
nand_update_bbt(mtd, rewrite_bbt[chipnr]);
+#endif
}
/* Return more or less happy */
--
1.7.7
More information about the barebox
mailing list