Commit 834de5c1 authored by Tudor Ambarus's avatar Tudor Ambarus Committed by Richard Weinberger

mtd: spi-nor: Fix the disabling of write protection at init

spi_nor_spansion_clear_sr_bp() depends on spansion_quad_enable().
While spansion_quad_enable() is selected as default when
initializing the flash parameters, the nor->quad_enable() method
can be overwritten later on when parsing BFPT.

Select the write protection disable mechanism at spi_nor_init() time,
when the nor->quad_enable() method is already known.

Fixes: 191f5c2e ("mtd: spi-nor: use 16-bit WRR command when QE is set on spansion flashes")
Signed-off-by: default avatarTudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent d45331b0
...@@ -3780,8 +3780,6 @@ static int spi_nor_init_params(struct spi_nor *nor, ...@@ -3780,8 +3780,6 @@ static int spi_nor_init_params(struct spi_nor *nor,
default: default:
/* Kept only for backward compatibility purpose. */ /* Kept only for backward compatibility purpose. */
params->quad_enable = spansion_quad_enable; params->quad_enable = spansion_quad_enable;
if (nor->clear_sr_bp)
nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp;
break; break;
} }
...@@ -4035,6 +4033,9 @@ static int spi_nor_init(struct spi_nor *nor) ...@@ -4035,6 +4033,9 @@ static int spi_nor_init(struct spi_nor *nor)
int err; int err;
if (nor->clear_sr_bp) { if (nor->clear_sr_bp) {
if (nor->quad_enable == spansion_quad_enable)
nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp;
err = nor->clear_sr_bp(nor); err = nor->clear_sr_bp(nor);
if (err) { if (err) {
dev_err(nor->dev, dev_err(nor->dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment