Messages in this thread Patch in this message | | | From | Chris Packham <> | Subject | [PATCH] mtd: rawnand: marvell: Use correct logic for nand-keep-config | Date | Tue, 27 Sep 2022 15:47:28 +1300 |
| |
From: Tony O'Brien <tony.obrien@alliedtelesis.co.nz>
Originally the absence of the marvell,nand-keep-config property caused the setup_data_interface function to be provided. However when setup_data_interface was moved into nand_controller_ops the logic was unintentionally inverted. Update the logic so that only if the marvell,nand-keep-config property is present the bootloader NAND config kept.
Fixes: 7a08dbaedd36 ("mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops") Signed-off-by: Tony O'Brien <tony.obrien@alliedtelesis.co.nz> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> ---
Notes: I think this is a bug that's been lurking for 4 years or so. I'm not sure that's particularly long in the life of an embedded device but it does make me wonder if there have been other bug reports about it. We noticed this because we had a bootloader that used maxed out NAND timings which made the time it took the kernel to do anything on the file system longer than we expected.
drivers/mtd/nand/raw/marvell_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/marvell_nand.c b/drivers/mtd/nand/raw/marvell_nand.c index 2455a581fd70..b248c5f657d5 100644 --- a/drivers/mtd/nand/raw/marvell_nand.c +++ b/drivers/mtd/nand/raw/marvell_nand.c @@ -2672,7 +2672,7 @@ static int marvell_nand_chip_init(struct device *dev, struct marvell_nfc *nfc, chip->controller = &nfc->controller; nand_set_flash_node(chip, np); - if (!of_property_read_bool(np, "marvell,nand-keep-config")) + if (of_property_read_bool(np, "marvell,nand-keep-config")) chip->options |= NAND_KEEP_TIMINGS; mtd = nand_to_mtd(chip); -- 2.37.3
| |