From: T Karthik Reddy Date: Tue, 9 Nov 2021 12:19:58 +0000 (-0700) Subject: mtd: spi-nor: Fix SST flash protection unlock issue X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=362b260e9fd7a06e52510559d5c71ffe56ffe7d6;p=thirdparty%2Fu-boot.git mtd: spi-nor: Fix SST flash protection unlock issue In current implementation WBPR is being written without setting write enable latch. So fix this issue by setting write enable latch before accessing WBPR. Also wait till the Write In Progress(WIP) bit is set. Signed-off-by: T Karthik Reddy --- diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 8f9fbfa70c7..592a0f2255e 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -1274,13 +1274,15 @@ static int sst26_lock_ctl(struct spi_nor *nor, loff_t ofs, uint64_t len, enum lo if (ctl == SST26_CTL_CHECK) return 0; + write_enable(nor); + ret = nor->write_reg(nor, SPINOR_OP_WRITE_BPR, bpr_buff, bpr_size); if (ret < 0) { dev_err(nor->dev, "fail to write block-protection register\n"); return ret; } - return 0; + return spi_nor_wait_till_ready(nor); } static int sst26_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len)