Commit 031e2777 authored by David Woodhouse's avatar David Woodhouse Committed by Brian Norris

mtd: gpmi: fix ECC regression

The "legacy" ECC layout used until 3.12-rc1 uses all the OOB area by
computing the ECC strength and ECC step size ourselves.

Commit 2febcdf8 ("mtd: gpmi: set the BCHs geometry with the ecc info")
makes the driver use the ECC info (ECC strength and ECC step size)
provided by the MTD code, and creates a different NAND ECC layout
for the BCH, and use the new ECC layout. This causes a regression:

   We can not mount the ubifs which was created by the old NAND ECC layout.

This patch fixes this issue by reverting to the legacy ECC layout.

We will probably introduce a new device-tree property to indicate that
the new ECC layout can be used. For now though, for the imminent 3.12
release, we just unconditionally revert to the 3.11 behaviour.

This leaves a harmless cosmetic warning about an unused function. At
this point in the cycle I really don't care.
Signed-off-by: default avatarDavid Woodhouse <>
Signed-off-by: default avatarBrian Norris <>
Acked-by: default avatarHuang Shijie <>
Acked-by: default avatarMarek Vasut <>
Tested-by: default avatarMarek Vasut <>
parent 18a84e93
......@@ -349,7 +349,7 @@ static int legacy_set_geometry(struct gpmi_nand_data *this)
int common_nfc_set_geometry(struct gpmi_nand_data *this)
return set_geometry_by_ecc_info(this) ? 0 : legacy_set_geometry(this);
return legacy_set_geometry(this);
struct dma_chan *get_dma_chan(struct gpmi_nand_data *this)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment