summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2020-12-11 10:52:24 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2020-12-11 10:57:52 +0100
commit41716009e150053a04c19bc2028ff7e1016a5fde (patch)
tree766045a827d4e2728749d0637674b24733ca7694
parent6748f466a3c85a3a776fe8ae64acbed5d803d829 (diff)
downloadbarebox-41716009e150053a04c19bc2028ff7e1016a5fde.tar.gz
barebox-41716009e150053a04c19bc2028ff7e1016a5fde.tar.xz
mtd: nand: Make software ECC support optional
Most NAND controllers use hardware ECC, so make software ECC support optional to save some binary space. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-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;