9
0
Fork 0

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>
This commit is contained in:
Sascha Hauer 2014-05-19 15:42:25 +02:00
parent f104f55c04
commit 50147cd34d
1 changed files with 0 additions and 16 deletions

View File

@ -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);