mtd: rawnand: onfi: Drop a useless parameter page read
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 28 Apr 2020 09:43:00 +0000 (11:43 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 11 May 2020 07:51:40 +0000 (09:51 +0200)
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@bootlin.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Link: https://lore.kernel.org/linux-mtd/20200428094302.14624-8-miquel.raynal@bootlin.com
drivers/mtd/nand/raw/nand_onfi.c

index 0f3fb9f..ee0f2c2 100644 (file)
@@ -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);