mtd: rawnand: macronix: nack the support of changing timings for one chip
authorMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 19 Mar 2018 13:47:29 +0000 (14:47 +0100)
committerBoris Brezillon <boris.brezillon@bootlin.com>
Tue, 20 Mar 2018 10:59:58 +0000 (11:59 +0100)
The MX30LF2G18AC chip declares in its parameter page supporting
SET/GET_FEATURES but when it comes to timings, experience shows that it
is not the case.

Unflag this feature for this particular chip in the nand_parameters
structure to avoid unnecessary errors and downturns.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
drivers/mtd/nand/raw/nand_macronix.c

index d290ff2a6d2f9aa02a3268649c04863155fc49e7..7ed1f87e742a7accbbeb441b02e199878b3ef035 100644 (file)
@@ -22,6 +22,19 @@ static int macronix_nand_init(struct nand_chip *chip)
        if (nand_is_slc(chip))
                chip->bbt_options |= NAND_BBT_SCAN2NDPAGE;
 
+       /*
+        * MX30LF2G18AC chip does not support using SET/GET_FEATURES to change
+        * the timings unlike what is declared in the parameter page. Unflag
+        * this feature to avoid unnecessary downturns.
+        */
+       if (chip->parameters.supports_set_get_features &&
+           !strcmp("MX30LF2G18AC", chip->parameters.model)) {
+               bitmap_clear(chip->parameters.get_feature_list,
+                            ONFI_FEATURE_ADDR_TIMING_MODE, 1);
+               bitmap_clear(chip->parameters.set_feature_list,
+                            ONFI_FEATURE_ADDR_TIMING_MODE, 1);
+       }
+
        return 0;
 }