Message ID | 20220128171013.1251796-1-miquel.raynal@bootlin.com |
---|---|
State | Superseded |
Headers | show |
Series | mtd: nand: ecc: Rework Kconfig dependencies | expand |
On 28/01/22 06:10PM, Miquel Raynal wrote: > Unlike "depends on", "select" does not enforce any type (y or m), which > can lead to the following situation: > * SPI_MXIC=y expects the NAND symbols to be built statically > * SPI_MXIC depends on MTD_NAND_ECC > * MTD_NAND_ECC selects MTD_NAND_CORE > In this case MTD_NAND_CORE=m is "valid" but will trigger link errors > such as the one below. Did you forget to paste the error log? > > The cleanest way to handle the situation is to use a "depends on" > between MTD_NAND_ECC and MTD_NAND_CORE to avoid such situations. > > While at modifying the MTD_NAND_ECC symbol, fix the spacing. > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
Hi Pratyush, p.yadav@ti.com wrote on Mon, 31 Jan 2022 16:27:54 +0530: > On 28/01/22 06:10PM, Miquel Raynal wrote: > > Unlike "depends on", "select" does not enforce any type (y or m), which > > can lead to the following situation: > > * SPI_MXIC=y expects the NAND symbols to be built statically > > * SPI_MXIC depends on MTD_NAND_ECC > > * MTD_NAND_ECC selects MTD_NAND_CORE > > In this case MTD_NAND_CORE=m is "valid" but will trigger link errors > > such as the one below. > > Did you forget to paste the error log? Oops! Indeed. > > The cleanest way to handle the situation is to use a "depends on" > > between MTD_NAND_ECC and MTD_NAND_CORE to avoid such situations. > > > > While at modifying the MTD_NAND_ECC symbol, fix the spacing. > > > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > Reviewed-by: Pratyush Yadav <p.yadav@ti.com> Thanks! Miquèl
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig index 8431292ff49d..1b5f5bac3e6e 100644 --- a/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig @@ -12,13 +12,13 @@ source "drivers/mtd/nand/spi/Kconfig" menu "ECC engine support" config MTD_NAND_ECC - bool - select MTD_NAND_CORE + bool + depends on MTD_NAND_CORE config MTD_NAND_ECC_SW_HAMMING bool "Software Hamming ECC engine" + depends on MTD_NAND_ECC default y if MTD_RAW_NAND - select MTD_NAND_ECC help This enables support for software Hamming error correction. This correction can correct up to 1 bit error @@ -37,8 +37,8 @@ config MTD_NAND_ECC_SW_HAMMING_SMC config MTD_NAND_ECC_SW_BCH bool "Software BCH ECC engine" + depends on MTD_NAND_ECC select BCH - select MTD_NAND_ECC default n help This enables support for software BCH error correction. Binary BCH @@ -48,7 +48,7 @@ config MTD_NAND_ECC_SW_BCH config MTD_NAND_ECC_MXIC bool "Macronix external hardware ECC engine" - select MTD_NAND_ECC + depends on MTD_NAND_ECC help This enables support for the hardware ECC engine from Macronix.
Unlike "depends on", "select" does not enforce any type (y or m), which can lead to the following situation: * SPI_MXIC=y expects the NAND symbols to be built statically * SPI_MXIC depends on MTD_NAND_ECC * MTD_NAND_ECC selects MTD_NAND_CORE In this case MTD_NAND_CORE=m is "valid" but will trigger link errors such as the one below. The cleanest way to handle the situation is to use a "depends on" between MTD_NAND_ECC and MTD_NAND_CORE to avoid such situations. While at modifying the MTD_NAND_ECC symbol, fix the spacing. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/mtd/nand/Kconfig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)