aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/mv_cesa.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 3cf303ee3fe3..38a3297ae2be 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
@@ -342,11 +342,13 @@ static void mv_process_hash_current(int first_block)
342 else 342 else
343 op.config |= CFG_MID_FRAG; 343 op.config |= CFG_MID_FRAG;
344 344
345 writel(req_ctx->state[0], cpg->reg + DIGEST_INITIAL_VAL_A); 345 if (first_block) {
346 writel(req_ctx->state[1], cpg->reg + DIGEST_INITIAL_VAL_B); 346 writel(req_ctx->state[0], cpg->reg + DIGEST_INITIAL_VAL_A);
347 writel(req_ctx->state[2], cpg->reg + DIGEST_INITIAL_VAL_C); 347 writel(req_ctx->state[1], cpg->reg + DIGEST_INITIAL_VAL_B);
348 writel(req_ctx->state[3], cpg->reg + DIGEST_INITIAL_VAL_D); 348 writel(req_ctx->state[2], cpg->reg + DIGEST_INITIAL_VAL_C);
349 writel(req_ctx->state[4], cpg->reg + DIGEST_INITIAL_VAL_E); 349 writel(req_ctx->state[3], cpg->reg + DIGEST_INITIAL_VAL_D);
350 writel(req_ctx->state[4], cpg->reg + DIGEST_INITIAL_VAL_E);
351 }
350 } 352 }
351 353
352 memcpy(cpg->sram + SRAM_CONFIG, &op, sizeof(struct sec_accel_config)); 354 memcpy(cpg->sram + SRAM_CONFIG, &op, sizeof(struct sec_accel_config));