X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=drivers%2Fmtd%2Fnand%2Fmxs_nand.c;h=8748c927c61a26789557d1363d58c32642a1942a;hb=68748340c8613877d71b444c0dffe63b536d5a5f;hp=3c9ee07be5af3940209541ea6f54b28215508bf1;hpb=502bdc6b4f52fff92d19b5072a60e8b8cbfb1c04;p=oweals%2Fu-boot.git diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c index 3c9ee07be5..8748c927c6 100644 --- a/drivers/mtd/nand/mxs_nand.c +++ b/drivers/mtd/nand/mxs_nand.c @@ -13,12 +13,11 @@ */ #include -#include +#include #include #include #include #include -#include #include #include #include @@ -26,7 +25,6 @@ #include #include #include -#include #include "mxs_nand.h" #define MXS_NAND_DMA_DESCRIPTOR_COUNT 4 @@ -47,61 +45,6 @@ #define MXS_NAND_BCH_TIMEOUT 10000 -/** - * @gf_len: The length of Galois Field. (e.g., 13 or 14) - * @ecc_strength: A number that describes the strength of the ECC - * algorithm. - * @ecc_chunk_size: The size, in bytes, of a single ECC chunk. Note - * the first chunk in the page includes both data and - * metadata, so it's a bit larger than this value. - * @ecc_chunk_count: The number of ECC chunks in the page, - * @block_mark_byte_offset: The byte offset in the ECC-based page view at - * which the underlying physical block mark appears. - * @block_mark_bit_offset: The bit offset into the ECC-based page view at - * which the underlying physical block mark appears. - */ -struct bch_geometry { - unsigned int gf_len; - unsigned int ecc_strength; - unsigned int ecc_chunk_size; - unsigned int ecc_chunk_count; - unsigned int block_mark_byte_offset; - unsigned int block_mark_bit_offset; -}; - -struct mxs_nand_info { - struct nand_chip chip; - unsigned int max_ecc_strength_supported; - bool use_minimum_ecc; - int cur_chip; - - uint32_t cmd_queue_len; - uint32_t data_buf_size; - struct bch_geometry bch_geometry; - - uint8_t *cmd_buf; - uint8_t *data_buf; - uint8_t *oob_buf; - - uint8_t marking_block_bad; - uint8_t raw_oob_mode; - - struct mxs_gpmi_regs *gpmi_regs; - struct mxs_bch_regs *bch_regs; - - /* Functions with altered behaviour */ - int (*hooked_read_oob)(struct mtd_info *mtd, - loff_t from, struct mtd_oob_ops *ops); - int (*hooked_write_oob)(struct mtd_info *mtd, - loff_t to, struct mtd_oob_ops *ops); - int (*hooked_block_markbad)(struct mtd_info *mtd, - loff_t ofs); - - /* DMA descriptors */ - struct mxs_dma_desc **desc; - uint32_t desc_index; -}; - struct nand_ecclayout fake_ecc_layout; /* @@ -1233,7 +1176,7 @@ int mxs_nand_init_spl(struct nand_chip *nand) return 0; } -int mxs_nand_init(struct mxs_nand_info *nand_info) +int mxs_nand_init_ctrl(struct mxs_nand_info *nand_info) { struct mtd_info *mtd; struct nand_chip *nand; @@ -1328,7 +1271,7 @@ void board_nand_init(void) nand_info->use_minimum_ecc = true; #endif - if (mxs_nand_init(nand_info) < 0) + if (mxs_nand_init_ctrl(nand_info) < 0) goto err; return;