mtd: spi-nor: Fix selection of 4-byte addressing opcodes on Spansion
authorVignesh Raghavendra <vigneshr@ti.com>
Wed, 8 Jan 2020 05:13:43 +0000 (10:43 +0530)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 17 Jan 2020 21:44:49 +0000 (22:44 +0100)
mtd->size is still unassigned when running spansion_post_sfdp_fixups()
hook, therefore use nor->params.size to determine the size of flash device.

This makes sure that 4-byte addressing opcodes are used on Spansion
flashes that are larger than 16MiB and don't have SFDP 4BAIT table
populated.

Fixes: 92094ebc385e ("mtd: spi-nor: Add spansion_post_sfdp_fixups()")
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/spi-nor/spi-nor.c

index aeb3ad2dbfb8b568feea5ae7436ed5a684670d49..97f68d70cd23756e7a37211522896dd44101aae2 100644 (file)
@@ -4769,9 +4769,7 @@ static void spi_nor_info_init_params(struct spi_nor *nor)
 
 static void spansion_post_sfdp_fixups(struct spi_nor *nor)
 {
-       struct mtd_info *mtd = &nor->mtd;
-
-       if (mtd->size <= SZ_16M)
+       if (nor->params.size <= SZ_16M)
                return;
 
        nor->flags |= SNOR_F_4B_OPCODES;