aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris BREZILLON <boris.brezillon@free-electrons.com>2015-12-30 14:32:05 -0500
committerBrian Norris <computersforpeace@gmail.com>2016-01-06 21:53:46 -0500
commitbc29c95d2e51305ec611f29cc703c2fa0d2086de (patch)
treee807d86d084b2e45842af1153641bb0b5f60c80e
parent40cbe6eee97b706f27bcc4c6aa1018bbe4f1e577 (diff)
mtd: nand: davinci: remove custom 'erased check' implementation
The davinci driver is manually checking for 'erased pages' while correcting ECC bytes. This logic can now done by the core infrastructure, and can thus be removed from this driver. Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> Tested-by: Franklin S Cooper Jr. <fcooper@ti.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-rw-r--r--drivers/mtd/nand/davinci_nand.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
index ddb73c331936..8cb821b6686e 100644
--- a/drivers/mtd/nand/davinci_nand.c
+++ b/drivers/mtd/nand/davinci_nand.c
@@ -317,14 +317,6 @@ static int nand_davinci_correct_4bit(struct mtd_info *mtd,
317 unsigned num_errors, corrected; 317 unsigned num_errors, corrected;
318 unsigned long timeo; 318 unsigned long timeo;
319 319
320 /* All bytes 0xff? It's an erased page; ignore its ECC. */
321 for (i = 0; i < 10; i++) {
322 if (ecc_code[i] != 0xff)
323 goto compare;
324 }
325 return 0;
326
327compare:
328 /* Unpack ten bytes into eight 10 bit values. We know we're 320 /* Unpack ten bytes into eight 10 bit values. We know we're
329 * little-endian, and use type punning for less shifting/masking. 321 * little-endian, and use type punning for less shifting/masking.
330 */ 322 */
@@ -749,6 +741,7 @@ static int nand_davinci_probe(struct platform_device *pdev)
749 info->chip.ecc.correct = nand_davinci_correct_4bit; 741 info->chip.ecc.correct = nand_davinci_correct_4bit;
750 info->chip.ecc.hwctl = nand_davinci_hwctl_4bit; 742 info->chip.ecc.hwctl = nand_davinci_hwctl_4bit;
751 info->chip.ecc.bytes = 10; 743 info->chip.ecc.bytes = 10;
744 info->chip.ecc.options = NAND_ECC_GENERIC_ERASED_CHECK;
752 } else { 745 } else {
753 info->chip.ecc.calculate = nand_davinci_calculate_1bit; 746 info->chip.ecc.calculate = nand_davinci_calculate_1bit;
754 info->chip.ecc.correct = nand_davinci_correct_1bit; 747 info->chip.ecc.correct = nand_davinci_correct_1bit;