On Fri, 15 Apr 2016 21:54:03 +0200 Rafał Miłecki <zaj...@gmail.com> wrote:
> This is part of process deprecating NAND_ECC_SOFT_BCH (and switching to > enum nand_ecc_algo). Not sure we really need to add this ->ecc_algo field: none of the existing AVR32 boards use software BCH implementation, and I don't expect to see new AVR32 boards :-). How about setting NAND_ECC_HAMMING when ecc_mode == NAND_ECC_SOFT directly in the atmel_nand driver? > > Signed-off-by: Rafał Miłecki <zaj...@gmail.com> > --- > arch/avr32/boards/atngw100/setup.c | 1 + > arch/avr32/boards/atstk1000/atstk1002.c | 1 + > include/linux/platform_data/atmel.h | 1 + > 3 files changed, 3 insertions(+) > > diff --git a/arch/avr32/boards/atngw100/setup.c > b/arch/avr32/boards/atngw100/setup.c > index afeae89..b059b97 100644 > --- a/arch/avr32/boards/atngw100/setup.c > +++ b/arch/avr32/boards/atngw100/setup.c > @@ -98,6 +98,7 @@ static struct atmel_nand_data atngw100mkii_nand_data > __initdata = { > .enable_pin = GPIO_PIN_PE(23), > .bus_width_16 = true, > .ecc_mode = NAND_ECC_SOFT, > + .ecc_algo = NAND_ECC_HAMMING, > .parts = nand_partitions, > .num_parts = ARRAY_SIZE(nand_partitions), > }; > diff --git a/arch/avr32/boards/atstk1000/atstk1002.c > b/arch/avr32/boards/atstk1000/atstk1002.c > index 6c80aba..6b45faf 100644 > --- a/arch/avr32/boards/atstk1000/atstk1002.c > +++ b/arch/avr32/boards/atstk1000/atstk1002.c > @@ -96,6 +96,7 @@ static struct atmel_nand_data atstk1006_nand_data > __initdata = { > .rdy_pin = GPIO_PIN_PB(30), > .enable_pin = GPIO_PIN_PB(29), > .ecc_mode = NAND_ECC_SOFT, > + .ecc_algo = NAND_ECC_HAMMING, > .parts = nand_partitions, > .num_parts = ARRAY_SIZE(nand_partitions), > }; > diff --git a/include/linux/platform_data/atmel.h > b/include/linux/platform_data/atmel.h > index 3c8825b..a283b3d 100644 > --- a/include/linux/platform_data/atmel.h > +++ b/include/linux/platform_data/atmel.h > @@ -33,6 +33,7 @@ struct atmel_nand_data { > u8 cle; /* address line number > connected to CLE */ > u8 bus_width_16; /* buswidth is 16 bit */ > u8 ecc_mode; /* ecc mode */ > + enum nand_ecc_algo ecc_algo; /* ecc algorithm */ > u8 on_flash_bbt; /* bbt on flash */ > struct mtd_partition *parts; > unsigned int num_parts; -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com