From 146b503e102778ee98d8ba59e9e178ab26a4af5b Mon Sep 17 00:00:00 2001 From: Boris BREZILLON Date: Wed, 30 Sep 2015 23:45:29 +0200 Subject: [PATCH] mtd: nand: sunxi: fix bitflips in erased pages Use the nand_check_erased_ecc_chunk() function to test if the ECC error was triggered by an erased page containing a few bitflips. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris --- drivers/mtd/nand/sunxi_nand.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c index a76eb5173bb8..92245a312334 100644 --- a/drivers/mtd/nand/sunxi_nand.c +++ b/drivers/mtd/nand/sunxi_nand.c @@ -611,7 +611,9 @@ static int sunxi_nfc_hw_ecc_read_chunk(struct mtd_info *mtd, sunxi_nfc_read_buf(mtd, oob, ecc->bytes + 4); if (status & NFC_ECC_ERR(0)) { - ret = -EIO; + ret = nand_check_erased_ecc_chunk(data, ecc->size, + oob, ecc->bytes + 4, + NULL, 0, ecc->strength); } else { /* * The engine protects 4 bytes of OOB data per chunk.