]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
mtd: spi-nor: Fix SST flash protection unlock issue
authorT Karthik Reddy <t.karthik.reddy@xilinx.com>
Tue, 9 Nov 2021 12:19:58 +0000 (05:19 -0700)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 15 Nov 2021 13:38:40 +0000 (14:38 +0100)
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 <t.karthik.reddy@xilinx.com>
drivers/mtd/spi/spi-nor-core.c

index 8f9fbfa70c73a29fc7ea291ff3a9cfea60c8d2ee..592a0f2255e52702aec5ed6fef0d10b11b972330 100644 (file)
@@ -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)