Revert "mtd: rawnand: bbt: Skip bad blocks when searching for the BBT in NAND"
authorFabio Estevam <festevam@gmail.com>
Mon, 19 Apr 2021 14:03:50 +0000 (11:03 -0300)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 19 Apr 2021 16:10:18 +0000 (18:10 +0200)
This reverts commit bd9c9fe2ad04546940f4a9979d679e62cae6aa51.

Since commit bd9c9fe2ad04 ("mtd: rawnand: bbt: Skip bad blocks when
searching for  the BBT in NAND") the bad block table cannot be found
on a imx27-phytec-phycard-s-rdk board:

Bad block table not found for chip 0
Bad block table not found for chip 0

Revert it for now, until a better solution can be found.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210419140350.809853-1-festevam@gmail.com
drivers/mtd/nand/raw/nand_bbt.c

index 6e25a5c..dced32a 100644 (file)
@@ -525,7 +525,6 @@ static int search_bbt(struct nand_chip *this, uint8_t *buf,
 {
        u64 targetsize = nanddev_target_size(&this->base);
        struct mtd_info *mtd = nand_to_mtd(this);
-       struct nand_bbt_descr *bd = this->badblock_pattern;
        int i, chips;
        int startblock, block, dir;
        int scanlen = mtd->writesize + mtd->oobsize;
@@ -561,10 +560,6 @@ static int search_bbt(struct nand_chip *this, uint8_t *buf,
                        int actblock = startblock + dir * block;
                        loff_t offs = (loff_t)actblock << this->bbt_erase_shift;
 
-                       /* Check if block is marked bad */
-                       if (scan_block_fast(this, bd, offs, buf))
-                               continue;
-
                        /* Read first page */
                        scan_read(this, buf, offs, mtd->writesize, td);
                        if (!check_pattern(buf, scanlen, mtd->writesize, td)) {