diff options
author | Wolfram Sang <wsa@kernel.org> | 2023-03-19 16:49:08 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2023-03-22 08:40:00 +0100 |
commit | 128812343111fcf4a51c81c9d7dc9d2dd3830635 (patch) | |
tree | cd173438d1fc30bebcd2d7a0c2f58da33550cdc3 | |
parent | 2e02aff6f7819ffa713babab04f490bc5f2f42ca (diff) | |
download | barebox-128812343111fcf4a51c81c9d7dc9d2dd3830635.tar.gz barebox-128812343111fcf4a51c81c9d7dc9d2dd3830635.tar.xz |
mtd: nand: atmel: legacy: use proper ecc_shift
The logic of the ternary operator is broken because '1 << x' is always
true even if 'x' is 0. Convert the logic to really use either the pdata
value or a sane default. Fixes "WARNING: Total number of ECC bytes
exceeded oobsize" on my USB-A9G20.
Fixes: babffbb193 ("mtd: atmel_nand: Add per board ECC setup")
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Link: https://lore.barebox.org/20230319154909.24047-3-wsa@kernel.org
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/mtd/nand/atmel/legacy.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nand/atmel/legacy.c b/drivers/mtd/nand/atmel/legacy.c index ea1fd64ad8..184cf465e3 100644 --- a/drivers/mtd/nand/atmel/legacy.c +++ b/drivers/mtd/nand/atmel/legacy.c @@ -1240,7 +1240,7 @@ static int __init atmel_nand_probe(struct device *dev) nand_chip->ecc.mode = pdata->ecc_mode; nand_chip->ecc.strength = pdata->ecc_strength ? : 1; - nand_chip->ecc.size = 1 << pdata->ecc_size_shift ? : 512; + nand_chip->ecc.size = 1 << (pdata->ecc_size_shift ? : 9); if (pdata->ecc_mode == NAND_ECC_HW) { nand_chip->ecc.mode = NAND_ECC_HW; |