diff options
Diffstat (limited to 'drivers/mtd/nand/cafe_nand.c')
-rw-r--r-- | drivers/mtd/nand/cafe_nand.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c index 2973d97bd529..886ff3a064c2 100644 --- a/drivers/mtd/nand/cafe_nand.c +++ b/drivers/mtd/nand/cafe_nand.c | |||
@@ -383,6 +383,7 @@ static int cafe_nand_read_page(struct mtd_info *mtd, struct nand_chip *chip, | |||
383 | uint8_t *buf, int page) | 383 | uint8_t *buf, int page) |
384 | { | 384 | { |
385 | struct cafe_priv *cafe = mtd->priv; | 385 | struct cafe_priv *cafe = mtd->priv; |
386 | unsigned int max_bitflips = 0; | ||
386 | 387 | ||
387 | cafe_dev_dbg(&cafe->pdev->dev, "ECC result %08x SYN1,2 %08x\n", | 388 | cafe_dev_dbg(&cafe->pdev->dev, "ECC result %08x SYN1,2 %08x\n", |
388 | cafe_readl(cafe, NAND_ECC_RESULT), | 389 | cafe_readl(cafe, NAND_ECC_RESULT), |
@@ -449,10 +450,11 @@ static int cafe_nand_read_page(struct mtd_info *mtd, struct nand_chip *chip, | |||
449 | } else { | 450 | } else { |
450 | dev_dbg(&cafe->pdev->dev, "Corrected %d symbol errors\n", n); | 451 | dev_dbg(&cafe->pdev->dev, "Corrected %d symbol errors\n", n); |
451 | mtd->ecc_stats.corrected += n; | 452 | mtd->ecc_stats.corrected += n; |
453 | max_bitflips = max_t(unsigned int, max_bitflips, n); | ||
452 | } | 454 | } |
453 | } | 455 | } |
454 | 456 | ||
455 | return 0; | 457 | return max_bitflips; |
456 | } | 458 | } |
457 | 459 | ||
458 | static struct nand_ecclayout cafe_oobinfo_2048 = { | 460 | static struct nand_ecclayout cafe_oobinfo_2048 = { |