On Fri, Oct 04, 2013 at 08:49:43PM +0100, Pekon Gupta wrote: > OMAP NAND driver currently supports multiple flavours of 1-bit Hamming > ecc-scheme, like: > - OMAP_ECC_HAMMING_CODE_DEFAULT > 1-bit hamming ecc code using software library > - OMAP_ECC_HAMMING_CODE_HW > 1-bit hamming ecc-code using GPMC h/w engine > - OMAP_ECC_HAMMING_CODE_HW_ROMCODE > 1-bit hamming ecc-code using GPMC h/w engin with ecc-layout compatible > to ROM code. > > This patch combines above multiple ecc-schemes into single implementation: > - OMAP_ECC_HAM1_CODE_HW > 1-bit hamming ecc-code using GPMC h/w engine with ROM-code compatible > ecc-layout. If I have my NAND formatted with one of the existing ECC schemes (e.g. OMAP_ECC_HAMMING_CODE_DEFAULT) will it work with the new OMAP_ECC_HAM1_CODE_HW scheme? Are they all compatible? > > Signed-off-by: Pekon Gupta <pekon@xxxxxx> > --- > Documentation/devicetree/bindings/mtd/gpmc-nand.txt | 8 ++++---- > arch/arm/mach-omap2/board-flash.c | 2 +- > arch/arm/mach-omap2/gpmc.c | 4 +--- > drivers/mtd/nand/omap2.c | 9 +++------ > include/linux/platform_data/mtd-nand-omap2.h | 6 +----- > 5 files changed, 10 insertions(+), 19 deletions(-) > > diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt > index df338cb..25ee232 100644 > --- a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt > +++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt > @@ -22,10 +22,10 @@ Optional properties: > width of 8 is assumed. > > - ti,nand-ecc-opt: A string setting the ECC layout to use. One of: > - > - "sw" Software method (default) > - "hw" Hardware method > - "hw-romcode" gpmc hamming mode method & romcode layout > + "sw" <deprecated> use "ham1" instead > + "hw" <deprecated> use "ham1" instead > + "hw-romcode" <deprecated> use "ham1" instead > + "ham1" 1-bit Hamming ecc code > "bch4" 4-bit BCH ecc code > "bch8" 8-bit BCH ecc code > > diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-omap2/board-flash.c > index fc20a61..ac82512 100644 > --- a/arch/arm/mach-omap2/board-flash.c > +++ b/arch/arm/mach-omap2/board-flash.c > @@ -142,7 +142,7 @@ __init board_nand_init(struct mtd_partition *nand_parts, u8 nr_parts, u8 cs, > board_nand_data.nr_parts = nr_parts; > board_nand_data.devsize = nand_type; > > - board_nand_data.ecc_opt = OMAP_ECC_HAMMING_CODE_DEFAULT; > + board_nand_data.ecc_opt = OMAP_ECC_BCH8_CODE_HW; > gpmc_nand_init(&board_nand_data, gpmc_t); > } > #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */ > diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c > index 9f4795a..1c45b72 100644 > --- a/arch/arm/mach-omap2/gpmc.c > +++ b/arch/arm/mach-omap2/gpmc.c > @@ -1342,9 +1342,7 @@ static void __maybe_unused gpmc_read_timings_dt(struct device_node *np, > #ifdef CONFIG_MTD_NAND > > static const char * const nand_ecc_opts[] = { > - [OMAP_ECC_HAMMING_CODE_DEFAULT] = "sw", > - [OMAP_ECC_HAMMING_CODE_HW] = "hw", > - [OMAP_ECC_HAMMING_CODE_HW_ROMCODE] = "hw-romcode", > + [OMAP_ECC_HAM1_CODE_HW] = "ham1", > [OMAP_ECC_BCH4_CODE_HW] = "bch4", > [OMAP_ECC_BCH8_CODE_HW] = "bch8", Won't this break existing dts which have "sw", "hw", or "hw-romcode"? Someone may try to use a new kernel with an old dt, and we marked them as deprecated, not removed. Thanks, Mark. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html