diff options
Diffstat (limited to 'drivers/mtd/nand/fsl_ifc_nand.c')
| -rw-r--r-- | drivers/mtd/nand/fsl_ifc_nand.c | 8 |
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); |
