summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-05-19 15:42:25 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-05-20 07:36:03 +0200
commit50147cd34daa8bb121c3d304fe839ee6c1602662 (patch)
tree0b2afba8207a3119b41636331496e787eb139ca5 /drivers
parentf104f55c04befbf4de0887824ff8250d022df642 (diff)
downloadbarebox-50147cd34daa8bb121c3d304fe839ee6c1602662.tar.gz
barebox-50147cd34daa8bb121c3d304fe839ee6c1602662.tar.xz
mtd: nand: mxs: Fix 2k nand with oob size of 224 bytes
The mxs nand driver has a calculation for the ecc strength. This calculation was not used for some common nands and it was assumed that 2k page nands always have a ecc strength of 8. This is not true since there are devices with 224 bytes of oob instread of 64 bytes. These allow for a greater ecc strength. Since the kernel relies on the calculation and we have to be consistent with the kernel use the calculcation in barebox aswell and just remove our assumptions. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mtd/nand/nand_mxs.c16
1 files changed, 0 insertions, 16 deletions
diff --git a/drivers/mtd/nand/nand_mxs.c b/drivers/mtd/nand/nand_mxs.c
index d5428bc485..5a4449d032 100644
--- a/drivers/mtd/nand/nand_mxs.c
+++ b/drivers/mtd/nand/nand_mxs.c
@@ -238,22 +238,6 @@ static inline uint32_t mxs_nand_get_ecc_strength(uint32_t page_data_size,
int ecc_strength = 0;
int gf_len = 13; /* length of Galois Field for non-DDR nand */
- /*
- * Possibly this if-else calculation may be removed since
- * ecc_strength calculated after it is taken from kernel driver
- * and therefore should work for all cases. But it was tested only
- * on devices with {data_size = 2046, oob_size = 64} and
- * {data_size = 4096, oob_size = 224} configuration.
- */
- if (page_data_size == 2048)
- return 8;
- else if (page_data_size == 4096) {
- if (page_oob_size == 128)
- return 8;
- if (page_oob_size == 218)
- return 16;
- }
-
ecc_strength = ((page_oob_size - MXS_NAND_METADATA_SIZE) * 8)
/ (gf_len * ecc_chunk_count);