[PATCH] mtd: spi-nor: Fix selection of 4-byte addressing opcodes on Spansion

Vignesh Raghavendra vigneshr at ti.com
Tue Jan 7 21:13:43 PST 2020

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

Fixes: 92094ebc385e ("mtd: spi-nor: Add spansion_post_sfdp_fixups()")
Signed-off-by: Vignesh Raghavendra <vigneshr at ti.com>
 drivers/mtd/spi-nor/spi-nor.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 1082b6bb1393..cd47f07deff3 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -4783,9 +4783,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)
 	nor->flags |= SNOR_F_4B_OPCODES;

More information about the linux-mtd mailing list