Hi Miquel, > > > > > > + > > > > > > + if (mxic->reliability_func & MACRONIX_READ_RETRY_BIT) { > > > > > > + chip->read_retries = MACRONIX_READ_RETRY_MODE + 1; > > > > > > > > > > Why +1 here, I am missing something? > > > > > > > > > > > > Without + 1, read retry mode is up to 4 rather than 5. > > > > But this NAND device support read retry mode up to 5. > > > > > > > > > > If there are 5 modes, you need to set 5 to chip->read_retries, not 6. > > > > > > If only 4 modes are used, there is probably a bug in the core that > > > must be fixed, please do not workaround it in the driver! > > > > > > It seems some patches is needed in nand_base.c > > ------------------------------------------------------------------------------------- > > diff --git a/drivers/mtd/nand/raw/nand_base.c > > b/drivers/mtd/nand/raw/nand_base.c > > index ddd396e..56be3a9 100644 > > --- a/drivers/mtd/nand/raw/nand_base.c > > +++ b/drivers/mtd/nand/raw/nand_base.c > > @@ -3101,7 +3101,8 @@ static int nand_setup_read_retry(struct nand_chip > > *chip, int retry_mode) > > { > > pr_debug("setting READ RETRY mode %d\n", retry_mode); > > > > - if (retry_mode >= chip->read_retries) > > + if (retry_mode > chip->read_retries) > > If I understand correctly, chip->read_retries is the total number of > 'modes' so the last valid mode is indeed chip->read_retries -1. > > I thought the problem would come from the core but I was wrong, you > actually need a MACRONIX_NUM_READ_RETRY_MODES set to 6. Please have two > defines if you need both (the first one being something like > MACRONIX_MAXIMUM_READ_RETRY_MODE set to 5). I have checked one of Micron's datasheet and it defined read-retry number = 8, mode 0 ~ 7, 0 mean to disable read-retry. Therefore, I will patch MACRONIX_NUM_READ_RETRY_MODES = 6. thanks & best regards, Mason CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. ===================================================================== ============================================================================ CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. ===================================================================== ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/