|
@@ -155,9 +155,10 @@ int gpmi_init(struct gpmi_nand_data *this)
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
* Reset BCH here, too. We got failures otherwise :(
|
|
* Reset BCH here, too. We got failures otherwise :(
|
|
|
- * See later BCH reset for explanation of MX23 handling
|
|
|
|
|
|
|
+ * See later BCH reset for explanation of MX23 and MX28 handling
|
|
|
*/
|
|
*/
|
|
|
- ret = gpmi_reset_block(r->bch_regs, GPMI_IS_MX23(this));
|
|
|
|
|
|
|
+ ret = gpmi_reset_block(r->bch_regs,
|
|
|
|
|
+ GPMI_IS_MX23(this) || GPMI_IS_MX28(this));
|
|
|
if (ret)
|
|
if (ret)
|
|
|
goto err_out;
|
|
goto err_out;
|
|
|
|
|
|
|
@@ -263,12 +264,10 @@ int bch_set_geometry(struct gpmi_nand_data *this)
|
|
|
/*
|
|
/*
|
|
|
* Due to erratum #2847 of the MX23, the BCH cannot be soft reset on this
|
|
* Due to erratum #2847 of the MX23, the BCH cannot be soft reset on this
|
|
|
* chip, otherwise it will lock up. So we skip resetting BCH on the MX23.
|
|
* chip, otherwise it will lock up. So we skip resetting BCH on the MX23.
|
|
|
- * On the other hand, the MX28 needs the reset, because one case has been
|
|
|
|
|
- * seen where the BCH produced ECC errors constantly after 10000
|
|
|
|
|
- * consecutive reboots. The latter case has not been seen on the MX23
|
|
|
|
|
- * yet, still we don't know if it could happen there as well.
|
|
|
|
|
|
|
+ * and MX28.
|
|
|
*/
|
|
*/
|
|
|
- ret = gpmi_reset_block(r->bch_regs, GPMI_IS_MX23(this));
|
|
|
|
|
|
|
+ ret = gpmi_reset_block(r->bch_regs,
|
|
|
|
|
+ GPMI_IS_MX23(this) || GPMI_IS_MX28(this));
|
|
|
if (ret)
|
|
if (ret)
|
|
|
goto err_out;
|
|
goto err_out;
|
|
|
|
|
|