On Fri, 24 Apr 2020 18:40:40 +0200 Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > During detection the logic on the NAND bus is: > > /* Regular ONFI detection */ > 1/ read the three NAND parameter pages > > /* Extended parameter page detection */ > 2/ send "read the NAND parameter page" commands without reading > actual data > 3/ move the column pointer to the extended page and read it > > If fact, as long as there is nothing happening on the NAND bus between > 1/ and 3/, the operation 2/ is redundant so remove it. > > Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > --- > drivers/mtd/nand/raw/nand_onfi.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/mtd/nand/raw/nand_onfi.c b/drivers/mtd/nand/raw/nand_onfi.c > index 6576b841bc56..2fc71b7c361f 100644 > --- a/drivers/mtd/nand/raw/nand_onfi.c > +++ b/drivers/mtd/nand/raw/nand_onfi.c > @@ -47,12 +47,10 @@ static int nand_flash_detect_ext_param_page(struct nand_chip *chip, > if (!ep) > return -ENOMEM; > > - /* Send our own NAND_CMD_PARAM. */ > - ret = nand_read_param_page_op(chip, 0, NULL, 0); > - if (ret) > - goto ext_out; > - > - /* Use the Change Read Column command to skip the ONFI param pages. */ > + /* > + * Use the Change Read Column command to skip the ONFI param pages and > + * ensure we read at the right location. > + */ > ret = nand_change_read_column_op(chip, > sizeof(*p) * p->num_of_param_pages, > ep, len, true); ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/