mtd: rawnand: micron: add fixup for ONFI revision
authorChris Packham <chris.packham@alliedtelesis.co.nz>
Sun, 24 Jun 2018 22:44:46 +0000 (10:44 +1200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 2 Jul 2018 07:02:28 +0000 (09:02 +0200)
Some Micron NAND chips (MT29F1G08ABAFAWP-ITE:F) report 00 00 for the
revision number field of the ONFI parameter page. Rather than rejecting
these outright assume ONFI version 1.0 if the revision number is 00 00.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/nand_micron.c

index 203faba0a9c179104e6f8e951596b1ef05b616d0..d30bd4df9b1262c742dd075b05dfe81306c56ce2 100644 (file)
@@ -290,6 +290,19 @@ static int micron_nand_init(struct nand_chip *chip)
        return 0;
 }
 
+static void micron_fixup_onfi_param_page(struct nand_chip *chip,
+                                        struct nand_onfi_params *p)
+{
+       /*
+        * MT29F1G08ABAFAWP-ITE:F and possibly others report 00 00 for the
+        * revision number field of the ONFI parameter page. Assume ONFI
+        * version 1.0 if the revision number is 00 00.
+        */
+       if (le16_to_cpu(p->revision) == 0)
+               p->revision = cpu_to_le16(ONFI_VERSION_1_0);
+}
+
 const struct nand_manufacturer_ops micron_nand_manuf_ops = {
        .init = micron_nand_init,
+       .fixup_onfi_param_page = micron_fixup_onfi_param_page,
 };