mtd: rawnand: diskonchip: Set the NAND_NO_BBM_QUIRK flag
authorBoris Brezillon <boris.brezillon@collabora.com>
Mon, 11 May 2020 06:49:17 +0000 (08:49 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 11 May 2020 07:51:43 +0000 (09:51 +0200)
We have a dummy block_bad() implementation returning 0. Let's set the
NAND_NO_BBM_QUIRK flag and let the core take care of that.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200511064917.6255-3-boris.brezillon@collabora.com
drivers/mtd/nand/raw/diskonchip.c

index c2a391a..4c3d04d 100644 (file)
@@ -776,13 +776,6 @@ static int doc200x_dev_ready(struct nand_chip *this)
        }
 }
 
-static int doc200x_block_bad(struct nand_chip *this, loff_t ofs)
-{
-       /* This is our last resort if we couldn't find or create a BBT.  Just
-          pretend all blocks are good. */
-       return 0;
-}
-
 static void doc200x_enable_hwecc(struct nand_chip *this, int mode)
 {
        struct doc_priv *doc = nand_get_controller_data(this);
@@ -1578,7 +1571,6 @@ static int __init doc_probe(unsigned long physadr)
        nand->legacy.cmd_ctrl           = doc200x_hwcontrol;
        nand->legacy.dev_ready  = doc200x_dev_ready;
        nand->legacy.waitfunc   = doc200x_wait;
-       nand->legacy.block_bad  = doc200x_block_bad;
        nand->ecc.hwctl         = doc200x_enable_hwecc;
        nand->ecc.calculate     = doc200x_calculate_ecc;
        nand->ecc.correct       = doc200x_correct_data;
@@ -1590,7 +1582,7 @@ static int __init doc_probe(unsigned long physadr)
        nand->ecc.options       = NAND_ECC_GENERIC_ERASED_CHECK;
        nand->bbt_options       = NAND_BBT_USE_FLASH;
        /* Skip the automatic BBT scan so we can run it manually */
-       nand->options           |= NAND_SKIP_BBTSCAN;
+       nand->options           |= NAND_SKIP_BBTSCAN | NAND_NO_BBM_QUIRK;
 
        doc->physadr            = physadr;
        doc->virtadr            = virtadr;