mtd: rawnand: micron: Allow controllers to overload raw accessors
authorMiquel Raynal <miquel.raynal@bootlin.com>
Thu, 7 May 2020 10:52:41 +0000 (12:52 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 11 May 2020 07:51:43 +0000 (09:51 +0200)
Some controller drivers do not support executing regular
nand_read/write_page_raw() helpers. For that, we created
nand_monolithic_read/write_page_raw() alternatives. Let's now allow
the driver to overload the ECC ->read/write_page_raw() hooks when
these hooks are supported.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Link: https://lore.kernel.org/linux-mtd/20200507105241.14299-14-miquel.raynal@bootlin.com
drivers/mtd/nand/raw/nand_micron.c

index 3a37d48..b2b047b 100644 (file)
@@ -508,8 +508,10 @@ static int micron_nand_init(struct nand_chip *chip)
                        chip->ecc.read_page_raw = nand_read_page_raw_notsupp;
                        chip->ecc.write_page_raw = nand_write_page_raw_notsupp;
                } else {
-                       chip->ecc.read_page_raw = nand_read_page_raw;
-                       chip->ecc.write_page_raw = nand_write_page_raw;
+                       if (!chip->ecc.read_page_raw)
+                               chip->ecc.read_page_raw = nand_read_page_raw;
+                       if (!chip->ecc.write_page_raw)
+                               chip->ecc.write_page_raw = nand_write_page_raw;
                }
        }