mirror of https://gitee.com/openkylin/linux.git
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@st.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
b533f8d84f
commit
467e6e7be2
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue