mtd: nand: ecc-bch: Move BCH code to the generic NAND layer
BCH ECC code might be later re-used by the SPI NAND layer. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20200929230124.31491-3-miquel.raynal@bootlin.com
This commit is contained in:
parent
51e7bf4534
commit
cdbe8df5e2
@ -15,6 +15,17 @@ config MTD_NAND_ECC
|
|||||||
bool
|
bool
|
||||||
depends on MTD_NAND_CORE
|
depends on MTD_NAND_CORE
|
||||||
|
|
||||||
|
config MTD_NAND_ECC_SW_BCH
|
||||||
|
bool "Software BCH ECC engine"
|
||||||
|
select BCH
|
||||||
|
select MTD_NAND_ECC
|
||||||
|
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.
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -8,3 +8,4 @@ obj-y += raw/
|
|||||||
obj-y += spi/
|
obj-y += spi/
|
||||||
|
|
||||||
nandcore-$(CONFIG_MTD_NAND_ECC) += ecc.o
|
nandcore-$(CONFIG_MTD_NAND_ECC) += ecc.o
|
||||||
|
nandcore-$(CONFIG_MTD_NAND_ECC_SW_BCH) += ecc-sw-bch.o
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/rawnand.h>
|
#include <linux/mtd/rawnand.h>
|
||||||
#include <linux/mtd/nand_bch.h>
|
#include <linux/mtd/nand-ecc-sw-bch.h>
|
||||||
#include <linux/bch.h>
|
#include <linux/bch.h>
|
||||||
|
|
||||||
/**
|
/**
|
@ -22,16 +22,6 @@ menuconfig MTD_RAW_NAND
|
|||||||
|
|
||||||
if MTD_RAW_NAND
|
if MTD_RAW_NAND
|
||||||
|
|
||||||
config MTD_NAND_ECC_SW_BCH
|
|
||||||
bool "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"
|
comment "Raw/parallel NAND flash controllers"
|
||||||
|
|
||||||
config MTD_NAND_DENALI
|
config MTD_NAND_DENALI
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
obj-$(CONFIG_MTD_RAW_NAND) += nand.o
|
obj-$(CONFIG_MTD_RAW_NAND) += nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_ECC_SW_HAMMING) += nand_ecc.o
|
obj-$(CONFIG_MTD_NAND_ECC_SW_HAMMING) += nand_ecc.o
|
||||||
nand-$(CONFIG_MTD_NAND_ECC_SW_BCH) += nand_bch.o
|
|
||||||
obj-$(CONFIG_MTD_SM_COMMON) += sm_common.o
|
obj-$(CONFIG_MTD_SM_COMMON) += sm_common.o
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_NAND_CAFE) += cafe_nand.o
|
obj-$(CONFIG_MTD_NAND_CAFE) += cafe_nand.o
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/nand.h>
|
#include <linux/mtd/nand.h>
|
||||||
#include <linux/mtd/nand_ecc.h>
|
#include <linux/mtd/nand_ecc.h>
|
||||||
#include <linux/mtd/nand_bch.h>
|
#include <linux/mtd/nand-ecc-sw-bch.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/rawnand.h>
|
#include <linux/mtd/rawnand.h>
|
||||||
#include <linux/mtd/nand_bch.h>
|
#include <linux/mtd/nand-ecc-sw-bch.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_device.h>
|
#include <linux/of_device.h>
|
||||||
|
|
||||||
#include <linux/mtd/nand_bch.h>
|
#include <linux/mtd/nand-ecc-sw-bch.h>
|
||||||
#include <linux/platform_data/elm.h>
|
#include <linux/platform_data/elm.h>
|
||||||
|
|
||||||
#include <linux/omap-gpmc.h>
|
#include <linux/omap-gpmc.h>
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
* This file is the header for the NAND BCH ECC implementation.
|
* This file is the header for the NAND BCH ECC implementation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __MTD_NAND_BCH_H__
|
#ifndef __MTD_NAND_ECC_SW_BCH_H__
|
||||||
#define __MTD_NAND_BCH_H__
|
#define __MTD_NAND_ECC_SW_BCH_H__
|
||||||
|
|
||||||
struct mtd_info;
|
struct mtd_info;
|
||||||
struct nand_chip;
|
struct nand_chip;
|
||||||
@ -63,4 +63,4 @@ static inline void nand_bch_free(struct nand_bch_control *nbc) {}
|
|||||||
|
|
||||||
#endif /* CONFIG_MTD_NAND_ECC_SW_BCH */
|
#endif /* CONFIG_MTD_NAND_ECC_SW_BCH */
|
||||||
|
|
||||||
#endif /* __MTD_NAND_BCH_H__ */
|
#endif /* __MTD_NAND_ECC_SW_BCH_H__ */
|
Loading…
Reference in New Issue
Block a user