diff options
author | Christian Hitz <christian.hitz@aizo.com> | 2011-10-12 09:32:06 +0200 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2012-01-26 16:09:02 -0600 |
commit | 4fee6c2f295f932b8febdc7ce8731ba045695fa5 (patch) | |
tree | fe22f449863d8caf75e010b81b55f1180592352b /drivers | |
parent | 5454ddbc9b6be1b3a8fe1018bda697ac2b33b202 (diff) | |
download | u-boot-imx-4fee6c2f295f932b8febdc7ce8731ba045695fa5.zip u-boot-imx-4fee6c2f295f932b8febdc7ce8731ba045695fa5.tar.gz u-boot-imx-4fee6c2f295f932b8febdc7ce8731ba045695fa5.tar.bz2 |
nand: make 1-bit software ECC configurable
The software ECC algorithm is not necessary when hardware ECC
is available and can be left out for a smaller image size.
Enable with CONFIG_MTD_ECC_SOFT.
Signed-off-by: Christian Hitz <christian.hitz@aizo.com>
Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mtd/nand/Makefile | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/nand_base.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile index 1d1b628..998fc73 100644 --- a/drivers/mtd/nand/Makefile +++ b/drivers/mtd/nand/Makefile @@ -39,7 +39,7 @@ COBJS-y += nand_bbt.o COBJS-y += nand_ids.o COBJS-y += nand_util.o endif -COBJS-y += nand_ecc.o +COBJS-$(CONFIG_MTD_ECC_SOFT) += nand_ecc.o COBJS-y += nand_base.o COBJS-$(CONFIG_NAND_ECC_BCH) += nand_bch.o diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 8ab8303..12b960f 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -3028,6 +3028,10 @@ int nand_scan_tail(struct mtd_info *mtd) chip->ecc.mode = NAND_ECC_SOFT; case NAND_ECC_SOFT: + if (!mtd_nand_has_ecc_soft()) { + printk(KERN_WARNING "CONFIG_MTD_ECC_SOFT not enabled\n"); + return -EINVAL; + } chip->ecc.calculate = nand_calculate_ecc; chip->ecc.correct = nand_correct_data; chip->ecc.read_page = nand_read_page_swecc; |