}
 }
 
-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);
        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;
        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;