summaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2015-09-29 14:11:56 -0700
committerBrian Norris <computersforpeace@gmail.com>2015-10-26 13:05:42 -0700
commit48c25cf441182e629e52e7f9fa56c2019e75fb00 (patch)
tree45c59c3c100de8248d16403af066f36cf4dfe9d7 /drivers/mtd
parentb70af9bef49bd9a5f4e7a2327d9074e29653e665 (diff)
mtd: nand: vf610_nfc: use nand_check_erased_ecc_chunk() helper
Signed-off-by: Brian Norris <computersforpeace@gmail.com> Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/nand/vf610_nfc.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/mtd/nand/vf610_nfc.c b/drivers/mtd/nand/vf610_nfc.c
index d275691dbb7c..8805d6325579 100644
--- a/drivers/mtd/nand/vf610_nfc.c
+++ b/drivers/mtd/nand/vf610_nfc.c
@@ -561,7 +561,6 @@ static inline int vf610_nfc_correct_data(struct mtd_info *mtd, uint8_t *dat,
u32 ecc_status_off = NFC_MAIN_AREA(0) + ECC_SRAM_ADDR + ECC_STATUS;
u8 ecc_status;
u8 ecc_count;
- int flips;
int flips_threshold = nfc->chip.ecc.strength / 2;
ecc_status = vf610_nfc_read(nfc, ecc_status_off) & 0xff;
@@ -578,16 +577,9 @@ static inline int vf610_nfc_correct_data(struct mtd_info *mtd, uint8_t *dat,
* On an erased page, bit count (including OOB) should be zero or
* at least less then half of the ECC strength.
*/
- flips = count_written_bits(dat, nfc->chip.ecc.size, flips_threshold);
- flips += count_written_bits(oob, mtd->oobsize, flips_threshold);
-
- if (unlikely(flips > flips_threshold))
- return -EINVAL;
-
- /* Erased page. */
- memset(dat, 0xff, nfc->chip.ecc.size);
- memset(oob, 0xff, mtd->oobsize);
- return flips;
+ return nand_check_erased_ecc_chunk(dat, nfc->chip.ecc.size, oob,
+ mtd->oobsize, NULL, 0,
+ flips_threshold);
}
static int vf610_nfc_read_page(struct mtd_info *mtd, struct nand_chip *chip,