Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -3780,8 +3780,6 @@ static int spi_nor_init_params(struct spi_nor *nor,
		default:
			/* Kept only for backward compatibility purpose. */
			params->quad_enable = spansion_quad_enable;
			if (nor->clear_sr_bp)
				nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp;
			break;
		}

@@ -4035,6 +4033,9 @@ static int spi_nor_init(struct spi_nor *nor)
	int err;

	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);
		if (err) {
			dev_err(nor->dev,