We have some cases that will programme the eFuse block partially multipletimes, so we should allow the block to be programmed again if it wasprogrammed partially. But we should lock the block if the whole blockwas programmed. Thus add a condition to validate if we need lock theblock or not.

Moreover we only enable the auto-check function when locking the block.

- ret = sprd_efuse_raw_prog(efuse, offset, false, false, val);+ /*+ * If the writing bytes are equal with the block width, which means the+ * whole block will be programmed. For this case, we should not allow+ * this block to be programmed again by locking this block.+ *+ * If the block was programmed partially, we should allow this block to+ * be programmed again.+ */+ if (bytes < SPRD_EFUSE_BLOCK_WIDTH)+ lock = false;+ else+ lock = true;++ ret = sprd_efuse_raw_prog(efuse, offset, false, lock, val);