[PATCH] mtd: nand: omap: ecc.correct: omap_elm_correct_data: return number of bit-flips detected in erased-page

Pekon Gupta pekon at ti.com
Thu Mar 20 09:19:58 EDT 2014


fixes: commit 62116e5171e00f85a8d53f76e45b84423c89ff34
       mtd: nand: omap2: Support for hardware BCH error correction.

In current omap_elm_correct_data(), an erased-page is also identified based on
	'bitflip_count <= ecc.strength' per ecc-step (data+oob)
But bitflip_count is ignored, unless errors are detected in other ecc.steps.
------------------
  if (bitflip_count) {
        /*
         * number of 0-bits within ECC limits
         * So this may be an erased-page
         */
        stat += bitflip_count;
  }
  [...]
  /* Check if any error reported */
  if (!is_error_reported)
        return 0;
------------------

This patch returns bitflip_count found in erased-page to chip->ecc.read_page()

Reported-by: Brian Norris <computersforpeace at gmail.com>
Signed-off-by: Pekon Gupta <pekon at ti.com>
---
 drivers/mtd/nand/omap2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 6f9b339..d161c9b 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -1383,7 +1383,7 @@ static int omap_elm_correct_data(struct mtd_info *mtd, u_char *data,
 
 	/* Check if any error reported */
 	if (!is_error_reported)
-		return 0;
+		return stat;
 
 	/* Decode BCH error using ELM module */
 	elm_decode_bch_error_page(info->elm_dev, ecc_vec, err_vec);
-- 
1.8.5.1.163.gd7aced9




More information about the linux-mtd mailing list