|
@@ -317,14 +317,6 @@ static int nand_davinci_correct_4bit(struct mtd_info *mtd,
|
|
|
unsigned num_errors, corrected;
|
|
|
unsigned long timeo;
|
|
|
|
|
|
- /* All bytes 0xff? It's an erased page; ignore its ECC. */
|
|
|
- for (i = 0; i < 10; i++) {
|
|
|
- if (ecc_code[i] != 0xff)
|
|
|
- goto compare;
|
|
|
- }
|
|
|
- return 0;
|
|
|
-
|
|
|
-compare:
|
|
|
/* Unpack ten bytes into eight 10 bit values. We know we're
|
|
|
* little-endian, and use type punning for less shifting/masking.
|
|
|
*/
|
|
@@ -749,6 +741,7 @@ static int nand_davinci_probe(struct platform_device *pdev)
|
|
|
info->chip.ecc.correct = nand_davinci_correct_4bit;
|
|
|
info->chip.ecc.hwctl = nand_davinci_hwctl_4bit;
|
|
|
info->chip.ecc.bytes = 10;
|
|
|
+ info->chip.ecc.options = NAND_ECC_GENERIC_ERASED_CHECK;
|
|
|
} else {
|
|
|
info->chip.ecc.calculate = nand_davinci_calculate_1bit;
|
|
|
info->chip.ecc.correct = nand_davinci_correct_1bit;
|