[PATCH v1 3/7] SST26* locking: need to enable write

prior to using the WBPR (write block protection register) command to write new block protection register values, the WREN command must be sent. otherwise the new values are not applied.
Signed-off-by: Bernhard Kirchen bernhard.kirchen@mbconnectline.com ---
drivers/mtd/spi/spi-nor-core.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index e16b0e1462..050aeac3fa 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -1091,12 +1091,20 @@ static int sst26_lock_ctl(struct spi_nor *nor, loff_t ofs, uint64_t len, enum lo if (ctl == SST26_CTL_CHECK) return 0;
+ ret = write_enable(nor); + if (ret < 0) + return ret; + 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; }
+ // ignore return value. even if write disable failed, the actual task + // (write block protecton register) was completed successfully. + write_disable(nor); + return 0; }

On Thu, Jan 28, 2021 at 9:59 PM Bernhard Kirchen schlimmchen@gmail.com wrote:
prior to using the WBPR (write block protection register) command to write new block protection register values, the WREN command must be sent. otherwise the new values are not applied.
Signed-off-by: Bernhard Kirchen bernhard.kirchen@mbconnectline.com
drivers/mtd/spi/spi-nor-core.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index e16b0e1462..050aeac3fa 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -1091,12 +1091,20 @@ static int sst26_lock_ctl(struct spi_nor *nor, loff_t ofs, uint64_t len, enum lo if (ctl == SST26_CTL_CHECK) return 0;
ret = write_enable(nor);
if (ret < 0)
return ret;
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; }
// ignore return value. even if write disable failed, the actual task
// (write block protecton register) was completed successfully.
Wrong style for multi-line comments, and indeed it won't be required at all.
Jagan.
participants (2)
-
Bernhard Kirchen
-
Jagan Teki