diff options
Diffstat (limited to 'drivers/crypto/mv_cesa.c')
-rw-r--r-- | drivers/crypto/mv_cesa.c | 12 |
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)); |