mtd: nand/fsmc: Initialize the badblockbits to 7

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Mon Mar 26 20:59:18 EDT 2012


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=467e6e7be2e26fd5bbaabd849717d37de99df8f1
Commit:     467e6e7be2e26fd5bbaabd849717d37de99df8f1
Parent:     b533f8d84f4f0807bf1bcf52017c6a267c8c4405
Author:     Vipin Kumar <vipin.kumar at st.com>
AuthorDate: Wed Mar 14 11:47:12 2012 +0530
Committer:  David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Tue Mar 27 00:59:02 2012 +0100

    mtd: nand/fsmc: Initialize the badblockbits to 7
    
    Ideally, the block should have 0xff written on the bad block position. Any value
    other than 0xff implies a bad block. In practical situations, there can be
    bit flips in the oob area as well which means that a block with 0x7f being read
    at bad block position may imply a bad block but it is infact only a bit flip in
    the bad block byte.
    
    To resolve this problem, the block is marked as good if number of high bits is
    greater than or equal to badblockbits (initialized to 7)
    
    Signed-off-by: Vipin Kumar <vipin.kumar at st.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
    Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
 drivers/mtd/nand/fsmc_nand.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
index 6a0bca1..91f5b34 100644
--- a/drivers/mtd/nand/fsmc_nand.c
+++ b/drivers/mtd/nand/fsmc_nand.c
@@ -802,6 +802,7 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
 	nand->ecc.size = 512;
 	nand->options = pdata->options;
 	nand->select_chip = fsmc_select_chip;
+	nand->badblockbits = 7;
 
 	if (pdata->width == FSMC_NAND_BW16)
 		nand->options |= NAND_BUSWIDTH_16;



More information about the linux-mtd-cvs mailing list