From: Nikita Kiryanov Date: Thu, 12 Dec 2013 13:19:31 +0000 (+0200) Subject: mtd: nand: omap: fix HAM1_SW ecc using default value for ecc.size X-Git-Tag: v2014.01-rc3~30^2~3 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2528460c38dfaffe7ae430244d1fa119087c1b01;p=oweals%2Fu-boot.git mtd: nand: omap: fix HAM1_SW ecc using default value for ecc.size Commit "mtd: nand: omap: enable BCH ECC scheme using ELM for generic platform" (d016dc42cedbf6102e100fa9ecb58462edfb14f8) changed the way software ECC is configured, both during boot, and during ecc switch, in a way that is not backwards compatible with older systems: Older version of omap_gpmc.c always assigned ecc.size = 0 when configuring for software ecc, relying on nand_scan_tail() to select a default for ecc.size (256), while the new version of omap_gpmc.c assigns ecc.size = pagesize, which is likely to not be 256. Since 1 bit hamming sw ecc is only meant to be used by legacy devices, revert to the original behavior. Cc: Igor Grinberg Cc: Tom Rini Cc: Scott Wood Cc: Pekon Gupta Signed-off-by: Nikita Kiryanov Acked-by: Pekon Gupta --- diff --git a/drivers/mtd/nand/omap_gpmc.c b/drivers/mtd/nand/omap_gpmc.c index 20679694f3..d5c4c2269c 100644 --- a/drivers/mtd/nand/omap_gpmc.c +++ b/drivers/mtd/nand/omap_gpmc.c @@ -776,7 +776,7 @@ static int omap_select_ecc_scheme(struct nand_chip *nand, bch_priv.type = 0; nand->ecc.mode = NAND_ECC_SOFT; nand->ecc.layout = NULL; - nand->ecc.size = pagesize; + nand->ecc.size = 0; bch->ecc_scheme = OMAP_ECC_HAM1_CODE_SW; break;