On Mon, 31 Jul 2017 10:29:56 +0200 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote: > Some ONFI NANDs do not support the SET/GET FEATURES commands, which, > according to the spec, is perfectly valid. > > On these NANDs we can't set a specific timing mode using the "timing > mode" feature, and we should assume the NAND does not require any setup > to enter a specific timing mode. Applied to nand/fixes. > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> > Fixes: d8e725dd8311 ("mtd: nand: automate NAND timings selection") > Reported-by: Alexander Dahl <ada@xxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > --- > drivers/mtd/nand/nand_base.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c > index 7b3826b42447..f2bd2c00a8a1 100644 > --- a/drivers/mtd/nand/nand_base.c > +++ b/drivers/mtd/nand/nand_base.c > @@ -1131,7 +1131,9 @@ static int nand_setup_data_interface(struct nand_chip *chip, int chipnr) > * Ensure the timing mode has been changed on the chip side > * before changing timings on the controller side. > */ > - if (chip->onfi_version) { > + if (chip->onfi_version && > + (le16_to_cpu(chip->onfi_params.opt_cmd) & > + ONFI_OPT_CMD_SET_GET_FEATURES)) { > u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = { > chip->onfi_timing_mode_default, > };