[PATCH v2] mtd: spi-nor: core: Ignore -ENOTSUPP in spi_nor_init()
Tudor.Ambarus at microchip.com
Tudor.Ambarus at microchip.com
Wed Oct 5 21:41:17 PDT 2022
Hi, Miquel,
It's too late for me to queue patches for next, but I'd like to have this patch
integrated as it solves a regression. Would you queue it to mtd/next?
Thanks,
ta
On 9/23/22 12:34, Mika Westerberg wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> The Intel SPI-NOR controller does not support the 4-byte address opcode
> so ->set_4byte_addr_mode() ends up returning -ENOTSUPP and the SPI flash
> chip probe fail like this:
>
> [ 12.291082] spi-nor: probe of spi0.0 failed with error -524
>
> Whereas previously before commit 08412e72afba ("mtd: spi-nor: core:
> Return error code from set_4byte_addr_mode()") it worked just fine.
>
> Fix this by ignoring -ENOTSUPP in spi_nor_init().
>
> Fixes: 08412e72afba ("mtd: spi-nor: core: Return error code from set_4byte_addr_mode()")
> Cc: stable at vger.kernel.org
> Reported-by: Hongyu Ning <hongyu.ning at intel.com>
> Signed-off-by: Mika Westerberg <mika.westerberg at linux.intel.com>
Acked-by: Tudor Ambarus <tudor.ambarus at microchip.com>
> ---
> The previous version of the patch (the revert) can be found here:
>
> https://lore.kernel.org/linux-mtd/20220922134824.46758-1-mika.westerberg@linux.intel.com/
>
> In this version we ignore -ENOTSUPP but the other error codes will be
> passed to the caller.
>
> drivers/mtd/spi-nor/core.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index f2c64006f8d7..bee8fc4c9f07 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2724,7 +2724,9 @@ static int spi_nor_init(struct spi_nor *nor)
> */
> WARN_ONCE(nor->flags & SNOR_F_BROKEN_RESET,
> "enabling reset hack; may not recover from unexpected reboots\n");
> - return nor->params->set_4byte_addr_mode(nor, true);
> + err = nor->params->set_4byte_addr_mode(nor, true);
> + if (err && err != -ENOTSUPP)
> + return err;
> }
>
> return 0;
> --
> 2.35.1
>
--
Cheers,
ta
More information about the linux-mtd
mailing list