From a888b5b88f078c8aaf1772f4eaa48f9625e78983 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 25 Oct 2016 19:00:14 -0700 Subject: nand: force BBT scan for controllers which need it Commit 35c204d8a9d0 ("nand: reinstate lazy bad block scanning") introduced lazy BBT scanning. However, some controller do parts of the initialization (mxs_nand.c) during scan_bbt, hence for those controllers the BBT must be scanned at initialization time. Signed-off-by: Stefan Agner Acked-by: Marcel Ziswiler --- drivers/mtd/nand/mxs_nand.c | 2 +- drivers/mtd/nand/nand_base.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c index 7f6351fa69..87c62c4bcb 100644 --- a/drivers/mtd/nand/mxs_nand.c +++ b/drivers/mtd/nand/mxs_nand.c @@ -1250,7 +1250,7 @@ int board_nand_init(struct nand_chip *nand) memset(&fake_ecc_layout, 0, sizeof(fake_ecc_layout)); nand->priv = nand_info; - nand->options |= NAND_NO_SUBPAGE_WRITE; + nand->options |= NAND_NO_SUBPAGE_WRITE | NAND_NEED_BBTSCAN; nand->cmd_ctrl = mxs_nand_cmd_ctrl; diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index c0e381ad2d..cbe083f988 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -4256,6 +4256,11 @@ int nand_scan_tail(struct mtd_info *mtd) if (!mtd->bitflip_threshold) mtd->bitflip_threshold = mtd->ecc_strength; + if (chip->options & NAND_NEED_BBTSCAN) { + chip->options |= NAND_BBT_SCANNED; + return chip->scan_bbt(mtd); + } + return 0; } EXPORT_SYMBOL(nand_scan_tail); -- cgit v1.2.3