From: Takahiro Kuwano <takahiro.kuw...@infineon.com> s25_s28_mdp_ready() returns 1 when spansion_sr_ready() returns negative value (error code). Fix this problem by following Linux implementation.
Fixes: 1c3dd193b5b ("mtd: spi-nor-core: Add fixups for Cypress s25hl-t/s25hs-t") Reported-by: Hiroyuki Saito <hiroyuki.sai...@infineon.com> Signed-off-by: Takahiro Kuwano <takahiro.kuw...@infineon.com> --- drivers/mtd/spi/spi-nor-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 655bf3aaf81..76c33b24368 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -3784,8 +3784,10 @@ static int s25_s28_mdp_ready(struct spi_nor *nor) for (addr = 0; addr < nor->mtd.size; addr += SZ_128M) { ret = spansion_sr_ready(nor, addr, nor->rdsr_dummy); - if (!ret) + if (ret < 0) return ret; + else if (ret == 0) + return 0; } return 1; -- 2.34.1