Skip to contentSkip to conversation

mtd: spi-nor: winbond: fix w25q128 regression

PATCH Applied Michael Walle 4 participants 4 messages Jun 21, 2024

Subsystems (2)
lore
Share & tools
lore

Michael Walle

author maintainer
#0 lore raw

PATCH v2 1/1 mtd: spi-nor: winbond: fix w25q128 regression

Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128") removed the flags for non-SFDP devices. It was assumed that it wasn't in use anymore. This wasn't true. Add the no_sfdp_flags as well as the size again.

We add the additional flags for dual and quad read because they have been reported to work properly by Hartmut using both older and newer versions of this flash, the similar flashes with 64Mbit and 256Mbit already have these flags and because it will (luckily) trigger our legacy SFDP parsing, so newer versions with SFDP support will still get the parameters from the SFDP tables.

---
As mentioned this is for fixing the regression and a proper fix will make use of the TRY_SFDP (or whatever it will be named) mechanism.

---
 drivers/mtd/spi-nor/winbond.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mtd/spi-nor/winbond.c +2 -0
index ca67bf2c46c3..6b6dec6f8faf 100644
@@ -105,7 +105,9 @@ static const struct flash_info winbond_nor_parts[] = {
 	}, {
 		.id = SNOR_ID(0xef, 0x40, 0x18),
 		.name = "w25q128",
+		.size = SZ_16M,
 		.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
 	}, {
 		.id = SNOR_ID(0xef, 0x40, 0x19),
 		.name = "w25q256",
Signature · 1 line
2.39.2
Acked-by on v2 1/1
#1 lore raw
Quoted 12 lines · Michael Walle

Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128") removed the flags for non-SFDP devices. It was assumed that it wasn't in use anymore. This wasn't true. Add the no_sfdp_flags as well as the size again.

We add the additional flags for dual and quad read because they have been reported to work properly by Hartmut using both older and newer versions of this flash, the similar flashes with 64Mbit and 256Mbit already have these flags and because it will (luckily) trigger our legacy SFDP parsing, so newer versions with SFDP support will still get the parameters from the SFDP tables.

Quoted 5 lines
Quoted 6 lines

---
As mentioned this is for fixing the regression and a proper fix will make use of the TRY_SFDP (or whatever it will be named) mechanism.

---
 drivers/mtd/spi-nor/winbond.c | 2 ++
 1 file changed, 2 insertions(+)
Reviewed-by on v2 1/1
#2 lore raw
In reply to Michael Walle
Quoted 12 lines · Michael Walle

Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128") removed the flags for non-SFDP devices. It was assumed that it wasn't in use anymore. This wasn't true. Add the no_sfdp_flags as well as the size again.

We add the additional flags for dual and quad read because they have been reported to work properly by Hartmut using both older and newer versions of this flash, the similar flashes with 64Mbit and 256Mbit already have these flags and because it will (luckily) trigger our legacy SFDP parsing, so newer versions with SFDP support will still get the parameters from the SFDP tables.

Quoted 5 lines
Quoted 21 lines

---
As mentioned this is for fixing the regression and a proper fix will make use of the TRY_SFDP (or whatever it will be named) mechanism.

---
 drivers/mtd/spi-nor/winbond.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mtd/spi-nor/winbond.c +2 -0
index ca67bf2c46c3..6b6dec6f8faf 100644
@@ -105,7 +105,9 @@ static const struct flash_info winbond_nor_parts[] = {
 	}, {
 		.id = SNOR_ID(0xef, 0x40, 0x18),
 		.name = "w25q128",
+		.size = SZ_16M,
 		.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
 	}, {
 		.id = SNOR_ID(0xef, 0x40, 0x19),
 		.name = "w25q256",
maintainer Reviewed-by on v2 1/1 Applied
#3 lore raw
In reply to Michael Walle
Quoted 12 lines · Michael Walle

Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128") removed the flags for non-SFDP devices. It was assumed that it wasn't in use anymore. This wasn't true. Add the no_sfdp_flags as well as the size again.

We add the additional flags for dual and quad read because they have been reported to work properly by Hartmut using both older and newer versions of this flash, the similar flashes with 64Mbit and 256Mbit already have these flags and because it will (luckily) trigger our legacy SFDP parsing, so newer versions with SFDP support will still get the parameters from the SFDP tables.

Quoted 5 lines

Applied to spi-nor/next. Thanks!

Signature · 2 lines
Regards,
Pratyush Yadav