]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
mtd: rawnand: brcmnand: Fix mtd oobsize
authorWilliam Zhang <william.zhang@broadcom.com>
Thu, 6 Jul 2023 18:29:09 +0000 (11:29 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 19 Sep 2023 10:22:48 +0000 (12:22 +0200)
commit31d7e6c7689b74213b5111cbac72aca009334bc8
tree7c2553e334861261448c179c837eb8d2b47a4a29
parent6182318ac04648b46db9d441fd7d696337fcdd0b
mtd: rawnand: brcmnand: Fix mtd oobsize

[ Upstream commit 60177390fa061c62d156f4a546e3efd90df3c183 ]

brcmnand controller can only access the flash spare area up to certain
bytes based on the ECC level. It can be less than the actual flash spare
area size. For example, for many NAND chip supporting ECC BCH-8, it has
226 bytes spare area. But controller can only uses 218 bytes. So brcmand
driver overrides the mtd oobsize with the controller's accessible spare
area size. When the nand base driver utilizes the nand_device object, it
resets the oobsize back to the actual flash spare aprea size from
nand_memory_organization structure and controller may not able to access
all the oob area as mtd advises.

This change fixes the issue by overriding the oobsize in the
nand_memory_organization structure to the controller's accessible spare
area size.

Fixes: a7ab085d7c16 ("mtd: rawnand: Initialize the nand_device object")
Signed-off-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230706182909.79151-6-william.zhang@broadcom.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mtd/nand/raw/brcmnand/brcmnand.c