diff mbox series

[1/2] Revert "mtd: spi-nor: Disable the flash quad mode in spi_nor_restore()"

Message ID 1599205640-26690-1-git-send-email-yangyicong@hisilicon.com
State Accepted
Delegated to: Vignesh R
Headers show
Series [1/2] Revert "mtd: spi-nor: Disable the flash quad mode in spi_nor_restore()" | expand

Commit Message

Yicong Yang Sept. 4, 2020, 7:47 a.m. UTC
Previous patch intends to restore the flash's QE bit when removed/shutdown,
but may have some problems and break the flash:

- for those originally in Quad mode, this patch will clear the QE bit
  when unloaded the flash, which is incorrect.
- even with above problem solved, it may still break the flash as some
  flash's QE bit is non-volatile and lots of set/reset will wear out
  the bit.
- the restore method cannot be proved to be valid as if a hard
  reset or accident crash happened, the spi_nor_restore() won't be
  performed the the QE bit will not be restored as we expected to.

So let's revert it to fix this. The discussion can be found at [1].

This reverts commit cc59e6bb6cd69d3347c06ccce088c5c6052e041e.

[1] https://lore.kernel.org/linux-mtd/CAO8h3eFLVLRmw7u+rurKsg7=Nh2q-HVq-HgVXig8gf5Dffk8MA@mail.gmail.com/
Reported-by: Matthias Weisser <m.weisser.m@gmail.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Suggested-by: Vignesh Raghavendra <vigneshr@ti.com>
---
 drivers/mtd/spi-nor/core.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Vignesh Raghavendra Sept. 17, 2020, 9:20 a.m. UTC | #1
On Fri, 4 Sep 2020 15:47:19 +0800, Yicong Yang wrote:
> Previous patch intends to restore the flash's QE bit when removed/shutdown,
> but may have some problems and break the flash:
> 
> - for those originally in Quad mode, this patch will clear the QE bit
>   when unloaded the flash, which is incorrect.
> - even with above problem solved, it may still break the flash as some
>   flash's QE bit is non-volatile and lots of set/reset will wear out
>   the bit.
> - the restore method cannot be proved to be valid as if a hard
>   reset or accident crash happened, the spi_nor_restore() won't be
>   performed the the QE bit will not be restored as we expected to.
> 
> [...]

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes, thanks!
[1/2] Revert "mtd: spi-nor: Disable the flash quad mode in spi_nor_restore()"
      https://git.kernel.org/mtd/c/7d90a9b269
[2/2] Revert "mtd: spi-nor: Add capability to disable flash quad mode"
      https://git.kernel.org/mtd/c/1afc0c89f6

--
Regards
Vignesh
diff mbox series

Patch

diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index 65eff4c..ab8f554 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -3000,8 +3000,6 @@  void spi_nor_restore(struct spi_nor *nor)
 	if (nor->addr_width == 4 && !(nor->flags & SNOR_F_4B_OPCODES) &&
 	    nor->flags & SNOR_F_BROKEN_RESET)
 		nor->params->set_4byte_addr_mode(nor, false);
-
-	spi_nor_quad_enable(nor, false);
 }
 EXPORT_SYMBOL_GPL(spi_nor_restore);