[PATCH v9 2/5] mtd: nand: vf610_nfc: add hardware BCH-ECC support
From: computersforpeace@gmail.com (Brian Norris)
Date: 2015-07-31 23:47:27
Also in:
linux-devicetree, lkml
From: computersforpeace@gmail.com (Brian Norris)
Date: 2015-07-31 23:47:27
Also in:
linux-devicetree, lkml
On Sat, Aug 01, 2015 at 01:35:52AM +0200, Stefan Agner wrote:
On 2015-08-01 01:09, Brian Norris wrote:
quoted
quoted
+static int vf610_nfc_read_page(struct mtd_info *mtd, struct nand_chip *chip, + uint8_t *buf, int oob_required, int page) +{ + int eccsize = chip->ecc.size; + int stat; + + vf610_nfc_read_buf(mtd, buf, eccsize); + + if (oob_required) + vf610_nfc_read_buf(mtd, chip->oob_poi, mtd->oobsize);To fix the bitflips issue above, you'll just want to unconditionally read the OOB (it's fine to ignore 'oob_required') and...quoted
+ + stat = vf610_nfc_correct_data(mtd, buf);...pass in chip->oob_poi as a third argument.Hm, this probably will have an effect on performance, since we usually omit the OOB if not requested.
You could test :) I don't really like performance claims without tests. (I say this because I added the oob_required flag myself, but just for functional purposes, not performance. Many drivers got by just fine by always copying the OOB data.)
I could fetch the OOB from the NAND controllers SRAM only if necessary (if HW ECC status is not ok...). Does this sound reasonable?
That does. Brian