|
@@ -1786,6 +1786,12 @@ static int sunxi_nand_hw_common_ecc_ctrl_init(struct mtd_info *mtd,
|
|
if (!data)
|
|
if (!data)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
|
|
+ /* Prefer 1k ECC chunk over 512 ones */
|
|
|
|
+ if (ecc->size == 512 && mtd->writesize > 512) {
|
|
|
|
+ ecc->size = 1024;
|
|
|
|
+ ecc->strength *= 2;
|
|
|
|
+ }
|
|
|
|
+
|
|
/* Add ECC info retrieval from DT */
|
|
/* Add ECC info retrieval from DT */
|
|
for (i = 0; i < ARRAY_SIZE(strengths); i++) {
|
|
for (i = 0; i < ARRAY_SIZE(strengths); i++) {
|
|
if (ecc->strength <= strengths[i])
|
|
if (ecc->strength <= strengths[i])
|