|
@@ -671,9 +671,7 @@ static int fsl_elbc_chip_init_tail(struct mtd_info *mtd)
|
|
|
if (chip->pagemask & 0xff000000)
|
|
|
al++;
|
|
|
|
|
|
- /* add to ECCM mode set in fsl_elbc_init */
|
|
|
- priv->fmr |= (12 << FMR_CWTO_SHIFT) | /* Timeout > 12 ms */
|
|
|
- (al << FMR_AL_SHIFT);
|
|
|
+ priv->fmr |= al << FMR_AL_SHIFT;
|
|
|
|
|
|
dev_dbg(priv->dev, "fsl_elbc_init: nand->numchips = %d\n",
|
|
|
chip->numchips);
|
|
@@ -776,8 +774,10 @@ static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
|
|
|
priv->mtd.priv = chip;
|
|
|
priv->mtd.owner = THIS_MODULE;
|
|
|
|
|
|
- /* Set the ECCM according to the settings in bootloader.*/
|
|
|
- priv->fmr = in_be32(&lbc->fmr) & FMR_ECCM;
|
|
|
+ /* set timeout to maximum */
|
|
|
+ priv->fmr = 15 << FMR_CWTO_SHIFT;
|
|
|
+ if (in_be32(&lbc->bank[priv->bank].or) & OR_FCM_PGS)
|
|
|
+ priv->fmr |= FMR_ECCM;
|
|
|
|
|
|
/* fill in nand_chip structure */
|
|
|
/* set up function call table */
|