Re: [PATCH v2] mtd: spi-nor: winbond: fix w25q128 regression

From: Esben Haabendal
Date: Fri Jun 21 2024 - 08:51:09 EST


Michael Walle <mwalle@xxxxxxxxxx> writes:

> 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.
>
> Reported-by: Hartmut Birr <e9hack@xxxxxxxxx>
> Closes: https://lore.kernel.org/r/CALxbwRo_-9CaJmt7r7ELgu+vOcgk=xZcGHobnKf=oT2=u4d4aA@xxxxxxxxxxxxxx/
> Fixes: 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
> Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Signed-off-by: Michael Walle <mwalle@xxxxxxxxxx>

Reviewed-by: Esben Haabendal <esben@xxxxxxxxxx>

> ---
> 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(+)
>
> diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c
> index ca67bf2c46c3..6b6dec6f8faf 100644
> --- a/drivers/mtd/spi-nor/winbond.c
> +++ b/drivers/mtd/spi-nor/winbond.c
> @@ -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",