mtd: rawnand: Use the data interface mode entry when relevant
authorMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 29 May 2020 11:13:02 +0000 (13:13 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 26 Jun 2020 06:35:05 +0000 (08:35 +0200)
The data interface setup does not care about the default timing mode
but cares about the actual timing mode at the time of the call of this
helper.

Use this entry instead and let chip->default_timing_mode only be used
at initialization time.

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

index 3526c2a50bbedc43bbbcbe2d95c6d1b5dea2c398..6e06ccf61aeb26e623c2b8ce2379f64fa6de1004 100644 (file)
@@ -951,9 +951,8 @@ static int nand_reset_data_interface(struct nand_chip *chip, int chipnr)
  */
 static int nand_setup_data_interface(struct nand_chip *chip, int chipnr)
 {
-       u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = {
-               chip->onfi_timing_mode_default,
-       };
+       u8 mode = chip->data_interface.timings.mode;
+       u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = { mode, };
        int ret;
 
        if (!nand_has_setup_data_iface(chip))
@@ -987,9 +986,9 @@ static int nand_setup_data_interface(struct nand_chip *chip, int chipnr)
        if (ret)
                goto err_reset_chip;
 
-       if (tmode_param[0] != chip->onfi_timing_mode_default) {
+       if (tmode_param[0] != mode) {
                pr_warn("timing mode %d not acknowledged by the NAND chip\n",
-                       chip->onfi_timing_mode_default);
+                       mode);
                goto err_reset_chip;
        }