diff options
-rw-r--r-- | drivers/mtd/nand/raw/nand_base.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index 837ea698af08..4099d8a1e25e 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c | |||
@@ -2816,6 +2816,16 @@ int nand_reset(struct nand_chip *chip, int chipnr) | |||
2816 | if (ret) | 2816 | if (ret) |
2817 | return ret; | 2817 | return ret; |
2818 | 2818 | ||
2819 | /* | ||
2820 | * A nand_reset_data_interface() put both the NAND chip and the NAND | ||
2821 | * controller in timings mode 0. If the default mode for this chip is | ||
2822 | * also 0, no need to proceed to the change again. Plus, at probe time, | ||
2823 | * nand_setup_data_interface() uses ->set/get_features() which would | ||
2824 | * fail anyway as the parameter page is not available yet. | ||
2825 | */ | ||
2826 | if (!chip->onfi_timing_mode_default) | ||
2827 | return 0; | ||
2828 | |||
2819 | chip->data_interface = saved_data_intf; | 2829 | chip->data_interface = saved_data_intf; |
2820 | ret = nand_setup_data_interface(chip, chipnr); | 2830 | ret = nand_setup_data_interface(chip, chipnr); |
2821 | if (ret) | 2831 | if (ret) |