When using HW-ECC, do not assign pl353_read_page_raw() and
pl353_write_page_raw() to ecc->write_page_raw and ecc->read_page_raw
hooks. if we do that read and writes will fail. We came to know this,
when running mtd_nandbiterrs test. This test case uses raw read/writes
when assigned but with hw-ecc, causes failures in data read
and writes.
Signed-off-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
container_of(chip, struct pl353_nand_controller, chip);
int err = 0;
- ecc->write_page_raw = pl353_nand_write_page_raw;
- ecc->read_page_raw = pl353_nand_read_page_raw;
ecc->read_oob = pl353_nand_read_oob;
ecc->write_oob = pl353_nand_write_oob;
if (ecc_mode == NAND_ECC_ON_DIE) {
+ ecc->write_page_raw = pl353_nand_write_page_raw;
+ ecc->read_page_raw = pl353_nand_read_page_raw;
pl353_smc_set_ecc_mode(PL353_SMC_ECCMODE_BYPASS);
/*
* On-Die ECC spare bytes offset 8 is used for ECC codes