|
|
@@ -4089,32 +4089,10 @@ Signed-off-by: John Crispin <[email protected]>
|
|
|
struct nand_chip *chip = mtd->priv;
|
|
|
--- a/drivers/mtd/nand/nand_bbt.c
|
|
|
+++ b/drivers/mtd/nand/nand_bbt.c
|
|
|
-@@ -1378,6 +1378,47 @@ int nand_isbad_bbt(struct mtd_info *mtd,
|
|
|
+@@ -1378,6 +1378,25 @@ int nand_isbad_bbt(struct mtd_info *mtd,
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-+/**
|
|
|
-+ * nand_markbad_bbt - [NAND Interface] Mark a block bad in the BBT
|
|
|
-+ * @mtd: MTD device structure
|
|
|
-+ * @offs: offset of the bad block
|
|
|
-+ */
|
|
|
-+int nand_markbad_bbt(struct mtd_info *mtd, loff_t offs)
|
|
|
-+{
|
|
|
-+ struct nand_chip *this = mtd->priv;
|
|
|
-+ int block, ret = 0;
|
|
|
-+
|
|
|
-+ block = (int)(offs >> this->bbt_erase_shift);
|
|
|
-+
|
|
|
-+ /* Mark bad block in memory */
|
|
|
-+ bbt_mark_entry(this, block, BBT_BLOCK_WORN);
|
|
|
-+
|
|
|
-+ /* Update flash-based bad block table */
|
|
|
-+ if (this->bbt_options & NAND_BBT_USE_FLASH)
|
|
|
-+ ret = nand_update_bbt(mtd, offs);
|
|
|
-+
|
|
|
-+ return ret;
|
|
|
-+}
|
|
|
-+
|
|
|
+void nand_bbt_set(struct mtd_info *mtd, int page, int flag)
|
|
|
+{
|
|
|
+ struct nand_chip *this = mtd->priv;
|