mtd: nand: davinci: remove custom 'erased check' implementation

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Tue Jan 12 15:59:30 PST 2016


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=bc29c95d2e51305ec611f29cc703c2fa0d2086de
Commit:     bc29c95d2e51305ec611f29cc703c2fa0d2086de
Parent:     40cbe6eee97b706f27bcc4c6aa1018bbe4f1e577
Author:     Boris BREZILLON <boris.brezillon at free-electrons.com>
AuthorDate: Wed Dec 30 20:32:05 2015 +0100
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Wed Jan 6 18:53:46 2016 -0800

    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 at free-electrons.com>
    Tested-by: Franklin S Cooper Jr. <fcooper at ti.com>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/nand/davinci_nand.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
index ddb73c3..8cb821b 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,
 	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;



More information about the linux-mtd-cvs mailing list