Lines Matching refs:desc

149 static inline int map_seq_out_ptr_ctx(u32 *desc, struct device *jrdev,  in map_seq_out_ptr_ctx()  argument
160 append_seq_out_ptr(desc, state->ctx_dma, ctx_len, 0); in map_seq_out_ptr_ctx()
166 static inline dma_addr_t map_seq_out_ptr_result(u32 *desc, struct device *jrdev, in map_seq_out_ptr_result() argument
172 append_seq_out_ptr(desc, dst_dma, digestsize, 0); in map_seq_out_ptr_result()
219 static inline int ctx_map_to_sec4_sg(u32 *desc, struct device *jrdev, in ctx_map_to_sec4_sg() argument
235 static inline void append_key_ahash(u32 *desc, struct caam_hash_ctx *ctx) in append_key_ahash() argument
237 append_key_as_imm(desc, ctx->key, ctx->split_key_pad_len, in append_key_ahash()
243 static inline void init_sh_desc_key_ahash(u32 *desc, struct caam_hash_ctx *ctx) in init_sh_desc_key_ahash() argument
247 init_sh_desc(desc, HDR_SHARE_SERIAL); in init_sh_desc_key_ahash()
251 key_jump_cmd = append_jump(desc, JUMP_JSL | JUMP_TEST_ALL | in init_sh_desc_key_ahash()
254 append_key_ahash(desc, ctx); in init_sh_desc_key_ahash()
256 set_jump_tgt_here(desc, key_jump_cmd); in init_sh_desc_key_ahash()
260 append_cmd(desc, SET_OK_NO_PROP_ERRORS | CMD_LOAD); in init_sh_desc_key_ahash()
268 static inline void ahash_append_load_str(u32 *desc, int digestsize) in ahash_append_load_str() argument
271 append_math_add(desc, VARSEQINLEN, SEQINLEN, REG0, CAAM_CMD_SZ); in ahash_append_load_str()
274 append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_LAST2 | in ahash_append_load_str()
278 append_seq_store(desc, digestsize, LDST_CLASS_2_CCB | in ahash_append_load_str()
285 static inline void ahash_ctx_data_to_out(u32 *desc, u32 op, u32 state, in ahash_ctx_data_to_out() argument
289 init_sh_desc_key_ahash(desc, ctx); in ahash_ctx_data_to_out()
292 append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT | in ahash_ctx_data_to_out()
296 append_operation(desc, op | state | OP_ALG_ENCRYPT); in ahash_ctx_data_to_out()
301 ahash_append_load_str(desc, digestsize); in ahash_ctx_data_to_out()
305 static inline void ahash_data_to_out(u32 *desc, u32 op, u32 state, in ahash_data_to_out() argument
308 init_sh_desc_key_ahash(desc, ctx); in ahash_data_to_out()
311 append_operation(desc, op | state | OP_ALG_ENCRYPT); in ahash_data_to_out()
316 ahash_append_load_str(desc, digestsize); in ahash_data_to_out()
325 u32 *desc; in ahash_set_sh_desc() local
331 desc = ctx->sh_desc_update; in ahash_set_sh_desc()
333 init_sh_desc(desc, HDR_SHARE_SERIAL); in ahash_set_sh_desc()
336 append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT | in ahash_set_sh_desc()
340 append_operation(desc, ctx->alg_type | OP_ALG_AS_UPDATE | in ahash_set_sh_desc()
344 ahash_append_load_str(desc, ctx->ctx_len); in ahash_set_sh_desc()
346 ctx->sh_desc_update_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
355 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_set_sh_desc()
359 desc = ctx->sh_desc_update_first; in ahash_set_sh_desc()
361 ahash_data_to_out(desc, have_key | ctx->alg_type, OP_ALG_AS_INIT, in ahash_set_sh_desc()
364 ctx->sh_desc_update_first_dma = dma_map_single(jrdev, desc, in ahash_set_sh_desc()
365 desc_bytes(desc), in ahash_set_sh_desc()
374 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_set_sh_desc()
378 desc = ctx->sh_desc_fin; in ahash_set_sh_desc()
380 ahash_ctx_data_to_out(desc, have_key | ctx->alg_type, in ahash_set_sh_desc()
383 ctx->sh_desc_fin_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
391 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_set_sh_desc()
392 desc_bytes(desc), 1); in ahash_set_sh_desc()
396 desc = ctx->sh_desc_finup; in ahash_set_sh_desc()
398 ahash_ctx_data_to_out(desc, have_key | ctx->alg_type, in ahash_set_sh_desc()
401 ctx->sh_desc_finup_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
409 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_set_sh_desc()
410 desc_bytes(desc), 1); in ahash_set_sh_desc()
414 desc = ctx->sh_desc_digest; in ahash_set_sh_desc()
416 ahash_data_to_out(desc, have_key | ctx->alg_type, OP_ALG_AS_INITFINAL, in ahash_set_sh_desc()
419 ctx->sh_desc_digest_dma = dma_map_single(jrdev, desc, in ahash_set_sh_desc()
420 desc_bytes(desc), in ahash_set_sh_desc()
429 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_set_sh_desc()
430 desc_bytes(desc), 1); in ahash_set_sh_desc()
449 u32 *desc; in hash_digest_key() local
454 desc = kmalloc(CAAM_CMD_SZ * 8 + CAAM_PTR_SZ * 2, GFP_KERNEL | GFP_DMA); in hash_digest_key()
455 if (!desc) { in hash_digest_key()
460 init_job_desc(desc, 0); in hash_digest_key()
466 kfree(desc); in hash_digest_key()
474 kfree(desc); in hash_digest_key()
479 append_operation(desc, ctx->alg_type | OP_ALG_ENCRYPT | in hash_digest_key()
481 append_seq_in_ptr(desc, src_dma, *keylen, 0); in hash_digest_key()
482 append_seq_fifo_load(desc, *keylen, FIFOLD_CLASS_CLASS2 | in hash_digest_key()
484 append_seq_out_ptr(desc, dst_dma, digestsize, 0); in hash_digest_key()
485 append_seq_store(desc, digestsize, LDST_CLASS_2_CCB | in hash_digest_key()
492 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in hash_digest_key()
498 ret = caam_jr_enqueue(jrdev, desc, split_key_done, &result); in hash_digest_key()
515 kfree(desc); in hash_digest_key()
637 static void ahash_done(struct device *jrdev, u32 *desc, u32 err, in ahash_done() argument
651 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done()
672 static void ahash_done_bi(struct device *jrdev, u32 *desc, u32 err, in ahash_done_bi() argument
686 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done_bi()
707 static void ahash_done_ctx_src(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_src() argument
721 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done_ctx_src()
742 static void ahash_done_ctx_dst(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_dst() argument
756 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done_ctx_dst()
792 u32 *sh_desc = ctx->sh_desc_update, *desc; in ahash_update_ctx() local
827 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_update_ctx()
852 desc = edesc->hw_desc; in ahash_update_ctx()
853 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | in ahash_update_ctx()
864 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + in ahash_update_ctx()
867 append_seq_out_ptr(desc, state->ctx_dma, ctx->ctx_len, 0); in ahash_update_ctx()
871 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_update_ctx()
872 desc_bytes(desc), 1); in ahash_update_ctx()
875 ret = caam_jr_enqueue(jrdev, desc, ahash_done_bi, req); in ahash_update_ctx()
912 u32 *sh_desc = ctx->sh_desc_fin, *desc; in ahash_final_ctx() local
932 desc = edesc->hw_desc; in ahash_final_ctx()
933 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_final_ctx()
940 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_final_ctx()
957 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + buflen, in ahash_final_ctx()
960 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_final_ctx()
969 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_final_ctx()
972 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_src, req); in ahash_final_ctx()
995 u32 *sh_desc = ctx->sh_desc_finup, *desc; in ahash_finup_ctx() local
1018 desc = edesc->hw_desc; in ahash_finup_ctx()
1019 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_finup_ctx()
1026 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_finup_ctx()
1045 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + in ahash_finup_ctx()
1048 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_finup_ctx()
1057 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_finup_ctx()
1060 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_src, req); in ahash_finup_ctx()
1078 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_digest() local
1105 desc = edesc->hw_desc; in ahash_digest()
1106 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_digest()
1122 append_seq_in_ptr(desc, src_dma, req->nbytes, options); in ahash_digest()
1124 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_digest()
1133 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_digest()
1136 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_digest()
1158 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_final_no_ctx() local
1174 desc = edesc->hw_desc; in ahash_final_no_ctx()
1175 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_final_no_ctx()
1183 append_seq_in_ptr(desc, state->buf_dma, buflen, 0); in ahash_final_no_ctx()
1185 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_final_no_ctx()
1195 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_final_no_ctx()
1198 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_final_no_ctx()
1226 u32 *desc, *sh_desc = ctx->sh_desc_update_first; in ahash_update_no_ctx() local
1271 desc = edesc->hw_desc; in ahash_update_no_ctx()
1272 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | in ahash_update_no_ctx()
1283 append_seq_in_ptr(desc, edesc->sec4_sg_dma, to_hash, LDST_SGF); in ahash_update_no_ctx()
1285 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_no_ctx()
1291 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_update_no_ctx()
1292 desc_bytes(desc), 1); in ahash_update_no_ctx()
1295 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_dst, req); in ahash_update_no_ctx()
1336 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_finup_no_ctx() local
1358 desc = edesc->hw_desc; in ahash_finup_no_ctx()
1359 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_finup_no_ctx()
1379 append_seq_in_ptr(desc, edesc->sec4_sg_dma, buflen + in ahash_finup_no_ctx()
1382 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_finup_no_ctx()
1391 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_finup_no_ctx()
1394 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_finup_no_ctx()
1418 u32 *sh_desc = ctx->sh_desc_update_first, *desc; in ahash_update_first() local
1477 desc = edesc->hw_desc; in ahash_update_first()
1478 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | in ahash_update_first()
1481 append_seq_in_ptr(desc, src_dma, to_hash, options); in ahash_update_first()
1483 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_first()
1489 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_update_first()
1490 desc_bytes(desc), 1); in ahash_update_first()
1493 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_dst, in ahash_update_first()