[PATCH 1/2] mtd: nand: use a lower value for badblockbits when working with MLC NAND
rnd4 at dave-tech.it
rnd4 at dave-tech.it
Fri Mar 6 04:12:17 PST 2015
From: Andrea Scian <andrea.scian at dave.eu>
MLC NANDs have more bit flips that SLC. When looking for bad block
marker we have a lot of false positive if we check for the whole byte. To
avoid this tolerate a few (4 here) bit flips for byte.
Signed-off-by: Andrea Scian <andrea.scian at dave.eu>
---
drivers/mtd/nand/nand_base.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index dfcd0a5..bdca223 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3315,7 +3315,10 @@ ident_done:
chip->chip_shift += 32 - 1;
}
- chip->badblockbits = 8;
+ if (nand_is_slc(chip))
+ chip->badblockbits = 8;
+ else
+ chip->badblockbits = 4;
chip->erase_cmd = single_erase_cmd;
/* Do not replace user supplied command function! */
--
1.7.9.5
More information about the linux-mtd
mailing list