aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand/fsl_ifc_nand.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/nand/fsl_ifc_nand.c')
-rw-r--r--drivers/mtd/nand/fsl_ifc_nand.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
index 0a177b1bfe3e..d1570f512f0b 100644
--- a/drivers/mtd/nand/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/fsl_ifc_nand.c
@@ -258,9 +258,15 @@ static void fsl_ifc_run_command(struct mtd_info *mtd)
258 int bufnum = nctrl->page & priv->bufnum_mask; 258 int bufnum = nctrl->page & priv->bufnum_mask;
259 int sector = bufnum * chip->ecc.steps; 259 int sector = bufnum * chip->ecc.steps;
260 int sector_end = sector + chip->ecc.steps - 1; 260 int sector_end = sector + chip->ecc.steps - 1;
261 __be32 *eccstat_regs;
262
263 if (ctrl->version >= FSL_IFC_VERSION_2_0_0)
264 eccstat_regs = ifc->ifc_nand.v2_nand_eccstat;
265 else
266 eccstat_regs = ifc->ifc_nand.v1_nand_eccstat;
261 267
262 for (i = sector / 4; i <= sector_end / 4; i++) 268 for (i = sector / 4; i <= sector_end / 4; i++)
263 eccstat[i] = ifc_in32(&ifc->ifc_nand.nand_eccstat[i]); 269 eccstat[i] = ifc_in32(&eccstat_regs[i]);
264 270
265 for (i = sector; i <= sector_end; i++) { 271 for (i = sector; i <= sector_end; i++) {
266 errors = check_read_ecc(mtd, ctrl, eccstat, i); 272 errors = check_read_ecc(mtd, ctrl, eccstat, i);