summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/nand/Kconfig5
-rw-r--r--drivers/mtd/nand/nand_base.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 339f7a923d..7c93260892 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -7,8 +7,13 @@ menuconfig NAND
if NAND
+config MTD_NAND_ECC_SOFT
+ bool
+ prompt "Support software ecc"
+
config MTD_NAND_ECC_SW_BCH
select BCH
+ depends on MTD_NAND_ECC_SOFT
bool
prompt "Support software BCH ecc"
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 0a980e4499..7c325f1f70 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -5053,6 +5053,9 @@ static int nand_set_ecc_soft_ops(struct nand_chip *chip)
struct mtd_info *mtd = nand_to_mtd(chip);
struct nand_ecc_ctrl *ecc = &chip->ecc;
+ if (!IS_ENABLED(CONFIG_MTD_NAND_ECC_SOFT))
+ return -ENOSYS;
+
if (WARN_ON(ecc->mode != NAND_ECC_SOFT))
return -EINVAL;