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: 191f5c2ed4b6faba ("mtd: spi-nor: use 16-bit WRR command when QE is set on spansion flashes")
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Richard Weinberger <richard@nod.at>

authored by Tudor Ambarus and committed by Richard Weinberger 834de5c1 d45331b0

Changed files
+3 -2
drivers
mtd
spi-nor
+3 -2
drivers/mtd/spi-nor/spi-nor.c
··· 3780 3780 default: 3781 3781 /* Kept only for backward compatibility purpose. */ 3782 3782 params->quad_enable = spansion_quad_enable; 3783 - if (nor->clear_sr_bp) 3784 - nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp; 3785 3783 break; 3786 3784 } 3787 3785 ··· 4033 4035 int err; 4034 4036 4035 4037 if (nor->clear_sr_bp) { 4038 + if (nor->quad_enable == spansion_quad_enable) 4039 + nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp; 4040 + 4036 4041 err = nor->clear_sr_bp(nor); 4037 4042 if (err) { 4038 4043 dev_err(nor->dev,