diff mbox

[v4,3/5] mtd: nand: davinci: remove custom 'erased check' implementation

Message ID 1451503927-10831-4-git-send-email-boris.brezillon@free-electrons.com
State Accepted
Commit bc29c95d2e51305ec611f29cc703c2fa0d2086de
Headers show

Commit Message

Boris Brezillon Dec. 30, 2015, 7:32 p.m. UTC
The davinci drivers 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 drivers.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 drivers/mtd/nand/davinci_nand.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

Comments

Brian Norris Jan. 7, 2016, 2:55 a.m. UTC | #1
On Wed, Dec 30, 2015 at 08:32:05PM +0100, Boris Brezillon wrote:
> The davinci drivers 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 drivers.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>

Pushed patch 3 to l2-mtd.git
diff mbox

Patch

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;