From: YueHaibing <yuehaibing@xxxxxxxxxx> Fix gcc build error while CONFIG_MTD_NAND_ECC_SW_BCH is set to module: drivers/mtd/nand/raw/nand_base.o: In function `nand_cleanup': (.text+0xef6): undefined reference to `nand_bch_free' drivers/mtd/nand/raw/nand_base.o: In function `nand_scan_tail': nand_base.c:(.text+0xa101): undefined reference to `nand_bch_calculate_ecc' nand_base.c:(.text+0xa120): undefined reference to `nand_bch_correct_data' nand_base.c:(.text+0xa269): undefined reference to `nand_bch_init' CONFIG_MTD_NAND_ECC_SW_BCH should not be set to M, while MTD_RAW_NAND is set to y. Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Fixes: 193bd4002644 ("mtd: nand: add software BCH ECC support") Suggested-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx> --- v2: use imply as suggestion --- drivers/mtd/devices/Kconfig | 2 +- drivers/mtd/nand/raw/Kconfig | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig index 7fcdaf6..f9258d6 100644 --- a/drivers/mtd/devices/Kconfig +++ b/drivers/mtd/devices/Kconfig @@ -207,7 +207,7 @@ comment "Disk-On-Chip Device Drivers" config MTD_DOCG3 tristate "M-Systems Disk-On-Chip G3" select BCH - select BCH_CONST_PARAMS if !CONFIG_MTD_NAND_ECC_SW_BCH + select BCH_CONST_PARAMS if !MTD_NAND_ECC_SW_BCH select BITREVERSE help This provides an MTD device driver for the M-Systems DiskOnChip diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 615d738..65c85fc 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -9,11 +9,22 @@ config MTD_NAND_ECC_SW_HAMMING_SMC Software ECC according to the Smart Media Specification. The original Linux implementation had byte 0 and 1 swapped. +config MTD_NAND_ECC_SW_BCH + tristate "Support software BCH ECC" + select BCH + default n + help + This enables support for software BCH error correction. Binary BCH + codes are more powerful and cpu intensive than traditional Hamming + ECC codes. They are used with NAND devices requiring more than 1 bit + of error correction. + menuconfig MTD_RAW_NAND tristate "Raw/Parallel NAND Device Support" depends on MTD select MTD_NAND_CORE select MTD_NAND_ECC_SW_HAMMING + imply MTD_NAND_ECC_SW_BCH help This enables support for accessing all type of raw/parallel NAND flash devices. For further information see @@ -21,16 +32,6 @@ menuconfig MTD_RAW_NAND if MTD_RAW_NAND -config MTD_NAND_ECC_SW_BCH - tristate "Support software BCH ECC" - select BCH - default n - help - This enables support for software BCH error correction. Binary BCH - codes are more powerful and cpu intensive than traditional Hamming - ECC codes. They are used with NAND devices requiring more than 1 bit - of error correction. - comment "Raw/parallel NAND flash controllers" config MTD_NAND_DENALI -- 2.7.4 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/