nvmem: sprd: Fix the block lock operation
authorFreeman Liu <freeman.liu@unisoc.com>
Mon, 23 Mar 2020 15:00:03 +0000 (15:00 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Mar 2020 19:05:23 +0000 (20:05 +0100)
According to the Spreadtrum eFuse specification, we should write 0 to
the block to trigger the lock operation.

Fixes: 096030e7f449 ("nvmem: sprd: Add Spreadtrum SoCs eFuse support")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Freeman Liu <freeman.liu@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang7@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200323150007.7487-2-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvmem/sprd-efuse.c

index 2f1e0fb..7a189ef 100644 (file)
@@ -239,7 +239,7 @@ static int sprd_efuse_raw_prog(struct sprd_efuse *efuse, u32 blk, bool doub,
                ret = -EBUSY;
        } else {
                sprd_efuse_set_prog_lock(efuse, lock);
-               writel(*data, efuse->base + SPRD_EFUSE_MEM(blk));
+               writel(0, efuse->base + SPRD_EFUSE_MEM(blk));
                sprd_efuse_set_prog_lock(efuse, false);
        }