nand: Make different ecc modes optional
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
eb133335e6
commit
8f5b0e497a
|
@ -13,6 +13,26 @@ config NAND_WRITE
|
||||||
default y
|
default y
|
||||||
prompt "Support writing to Nand"
|
prompt "Support writing to Nand"
|
||||||
|
|
||||||
|
config NAND_ECC_SOFT
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
prompt "Support software ecc"
|
||||||
|
|
||||||
|
config NAND_ECC_HW
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
prompt "Support hardware ecc"
|
||||||
|
|
||||||
|
config NAND_ECC_HW_SYNDROME
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
prompt "Support syndrome hardware ecc controllers"
|
||||||
|
|
||||||
|
config NAND_ECC_HW_NONE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
prompt "Support skipping ecc support"
|
||||||
|
|
||||||
config NAND_IMX
|
config NAND_IMX
|
||||||
bool
|
bool
|
||||||
prompt "i.MX NAND driver"
|
prompt "i.MX NAND driver"
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
|
||||||
# Generic NAND options
|
# Generic NAND options
|
||||||
obj-$(CONFIG_NAND) += nand.o nand_ecc.o nand_hwecc.o nand_swecc.o nand_hwecc_syndrome.o
|
obj-$(CONFIG_NAND) += nand.o nand_ecc.o
|
||||||
obj-$(CONFIG_NAND_WRITE) += nand_write.o
|
obj-$(CONFIG_NAND_WRITE) += nand_write.o
|
||||||
|
obj-$(CONFIG_NAND_ECC_SOFT) += nand_ecc.o nand_swecc.o
|
||||||
|
obj-$(CONFIG_NAND_ECC_HW) += nand_hwecc.o
|
||||||
|
obj-$(CONFIG_NAND_ECC_HW_SYNDROME) += nand_hwecc_syndrome.o
|
||||||
obj-$(CONFIG_MTD_NAND_IDS) += nand_ids.o
|
obj-$(CONFIG_MTD_NAND_IDS) += nand_ids.o
|
||||||
obj-$(CONFIG_NAND) += nand_base.o nand_bbt.o
|
obj-$(CONFIG_NAND) += nand_base.o nand_bbt.o
|
||||||
|
|
||||||
|
|
|
@ -1322,20 +1322,24 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
chip->ecc.write_page_raw = nand_write_page_raw;
|
chip->ecc.write_page_raw = nand_write_page_raw;
|
||||||
#endif
|
#endif
|
||||||
switch (chip->ecc.mode) {
|
switch (chip->ecc.mode) {
|
||||||
|
#ifdef CONFIG_NAND_ECC_HW
|
||||||
case NAND_ECC_HW:
|
case NAND_ECC_HW:
|
||||||
nand_check_hwecc(mtd, chip);
|
nand_check_hwecc(mtd, chip);
|
||||||
nand_init_ecc_hw(chip);
|
nand_init_ecc_hw(chip);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_NAND_ECC_HW_SYNDROME
|
||||||
case NAND_ECC_HW_SYNDROME:
|
case NAND_ECC_HW_SYNDROME:
|
||||||
nand_check_hwecc(mtd, chip);
|
nand_check_hwecc(mtd, chip);
|
||||||
nand_init_ecc_hw_syndrome(chip);
|
nand_init_ecc_hw_syndrome(chip);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_NAND_ECC_SOFT
|
||||||
case NAND_ECC_SOFT:
|
case NAND_ECC_SOFT:
|
||||||
nand_init_ecc_soft(chip);
|
nand_init_ecc_soft(chip);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_NAND_ECC_NONE
|
||||||
case NAND_ECC_NONE:
|
case NAND_ECC_NONE:
|
||||||
printk(KERN_WARNING "NAND_ECC_NONE selected by board driver. "
|
printk(KERN_WARNING "NAND_ECC_NONE selected by board driver. "
|
||||||
"This is not recommended !!\n");
|
"This is not recommended !!\n");
|
||||||
|
@ -1348,7 +1352,7 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
chip->ecc.size = mtd->writesize;
|
chip->ecc.size = mtd->writesize;
|
||||||
chip->ecc.bytes = 0;
|
chip->ecc.bytes = 0;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
printk(KERN_WARNING "Invalid NAND_ECC_MODE %d\n",
|
printk(KERN_WARNING "Invalid NAND_ECC_MODE %d\n",
|
||||||
chip->ecc.mode);
|
chip->ecc.mode);
|
||||||
|
|
Loading…
Reference in New Issue