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);
        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 */