Skip to content

Commit 7e6b04f

Browse files
Arseniy Krasnovmiquelraynal
authored andcommitted
mtd: rawnand: meson: fix OOB available bytes for ECC
It is incorrect to calculate number of OOB bytes for ECC engine using some "already known" ECC step size (1024 bytes here). Number of such bytes for ECC engine must be whole OOB except 2 bytes for bad block marker, while proper ECC step size and strength will be selected by ECC logic. Fixes: 8fae856 ("mtd: rawnand: meson: add support for Amlogic NAND flash controller") Cc: <Stable@vger.kernel.org> Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20230705065211.293500-1-AVKrasnov@sberdevices.ru
1 parent d8403b9 commit 7e6b04f

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

drivers/mtd/nand/raw/meson_nand.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,7 +1278,6 @@ static int meson_nand_attach_chip(struct nand_chip *nand)
12781278
struct meson_nfc *nfc = nand_get_controller_data(nand);
12791279
struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand);
12801280
struct mtd_info *mtd = nand_to_mtd(nand);
1281-
int nsectors = mtd->writesize / 1024;
12821281
int raw_writesize;
12831282
int ret;
12841283

@@ -1304,7 +1303,7 @@ static int meson_nand_attach_chip(struct nand_chip *nand)
13041303
nand->options |= NAND_NO_SUBPAGE_WRITE;
13051304

13061305
ret = nand_ecc_choose_conf(nand, nfc->data->ecc_caps,
1307-
mtd->oobsize - 2 * nsectors);
1306+
mtd->oobsize - 2);
13081307
if (ret) {
13091308
dev_err(nfc->dev, "failed to ECC init\n");
13101309
return -EINVAL;

0 commit comments

Comments
 (0)