Lines Matching refs:desc
140 static inline int map_seq_out_ptr_ctx(u32 *desc, struct device *jrdev, in map_seq_out_ptr_ctx() argument
151 append_seq_out_ptr(desc, state->ctx_dma, ctx_len, 0); in map_seq_out_ptr_ctx()
157 static inline dma_addr_t map_seq_out_ptr_result(u32 *desc, struct device *jrdev, in map_seq_out_ptr_result() argument
163 append_seq_out_ptr(desc, dst_dma, digestsize, 0); in map_seq_out_ptr_result()
211 static inline int ctx_map_to_sec4_sg(u32 *desc, struct device *jrdev, in ctx_map_to_sec4_sg() argument
227 static inline void append_key_ahash(u32 *desc, struct caam_hash_ctx *ctx) in append_key_ahash() argument
229 append_key_as_imm(desc, ctx->key, ctx->split_key_pad_len, in append_key_ahash()
235 static inline void init_sh_desc_key_ahash(u32 *desc, struct caam_hash_ctx *ctx) in init_sh_desc_key_ahash() argument
239 init_sh_desc(desc, HDR_SHARE_SERIAL); in init_sh_desc_key_ahash()
243 key_jump_cmd = append_jump(desc, JUMP_JSL | JUMP_TEST_ALL | in init_sh_desc_key_ahash()
246 append_key_ahash(desc, ctx); in init_sh_desc_key_ahash()
248 set_jump_tgt_here(desc, key_jump_cmd); in init_sh_desc_key_ahash()
252 append_cmd(desc, SET_OK_NO_PROP_ERRORS | CMD_LOAD); in init_sh_desc_key_ahash()
260 static inline void ahash_append_load_str(u32 *desc, int digestsize) in ahash_append_load_str() argument
263 append_math_add(desc, VARSEQINLEN, SEQINLEN, REG0, CAAM_CMD_SZ); in ahash_append_load_str()
266 append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_LAST2 | in ahash_append_load_str()
270 append_seq_store(desc, digestsize, LDST_CLASS_2_CCB | in ahash_append_load_str()
277 static inline void ahash_ctx_data_to_out(u32 *desc, u32 op, u32 state, in ahash_ctx_data_to_out() argument
281 init_sh_desc_key_ahash(desc, ctx); in ahash_ctx_data_to_out()
284 append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT | in ahash_ctx_data_to_out()
288 append_operation(desc, op | state | OP_ALG_ENCRYPT); in ahash_ctx_data_to_out()
293 ahash_append_load_str(desc, digestsize); in ahash_ctx_data_to_out()
297 static inline void ahash_data_to_out(u32 *desc, u32 op, u32 state, in ahash_data_to_out() argument
300 init_sh_desc_key_ahash(desc, ctx); in ahash_data_to_out()
303 append_operation(desc, op | state | OP_ALG_ENCRYPT); in ahash_data_to_out()
308 ahash_append_load_str(desc, digestsize); in ahash_data_to_out()
317 u32 *desc; in ahash_set_sh_desc() local
323 desc = ctx->sh_desc_update; in ahash_set_sh_desc()
325 init_sh_desc(desc, HDR_SHARE_SERIAL); in ahash_set_sh_desc()
328 append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT | in ahash_set_sh_desc()
332 append_operation(desc, ctx->alg_type | OP_ALG_AS_UPDATE | in ahash_set_sh_desc()
336 ahash_append_load_str(desc, ctx->ctx_len); in ahash_set_sh_desc()
338 ctx->sh_desc_update_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
347 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_set_sh_desc()
351 desc = ctx->sh_desc_update_first; in ahash_set_sh_desc()
353 ahash_data_to_out(desc, have_key | ctx->alg_type, OP_ALG_AS_INIT, in ahash_set_sh_desc()
356 ctx->sh_desc_update_first_dma = dma_map_single(jrdev, desc, in ahash_set_sh_desc()
357 desc_bytes(desc), in ahash_set_sh_desc()
366 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_set_sh_desc()
370 desc = ctx->sh_desc_fin; in ahash_set_sh_desc()
372 ahash_ctx_data_to_out(desc, have_key | ctx->alg_type, in ahash_set_sh_desc()
375 ctx->sh_desc_fin_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
383 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_set_sh_desc()
384 desc_bytes(desc), 1); in ahash_set_sh_desc()
388 desc = ctx->sh_desc_finup; in ahash_set_sh_desc()
390 ahash_ctx_data_to_out(desc, have_key | ctx->alg_type, in ahash_set_sh_desc()
393 ctx->sh_desc_finup_dma = dma_map_single(jrdev, desc, desc_bytes(desc), in ahash_set_sh_desc()
401 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_set_sh_desc()
402 desc_bytes(desc), 1); in ahash_set_sh_desc()
406 desc = ctx->sh_desc_digest; in ahash_set_sh_desc()
408 ahash_data_to_out(desc, have_key | ctx->alg_type, OP_ALG_AS_INITFINAL, in ahash_set_sh_desc()
411 ctx->sh_desc_digest_dma = dma_map_single(jrdev, desc, in ahash_set_sh_desc()
412 desc_bytes(desc), in ahash_set_sh_desc()
421 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_set_sh_desc()
422 desc_bytes(desc), 1); in ahash_set_sh_desc()
441 u32 *desc; in hash_digest_key() local
446 desc = kmalloc(CAAM_CMD_SZ * 8 + CAAM_PTR_SZ * 2, GFP_KERNEL | GFP_DMA); in hash_digest_key()
447 if (!desc) { in hash_digest_key()
452 init_job_desc(desc, 0); in hash_digest_key()
458 kfree(desc); in hash_digest_key()
466 kfree(desc); in hash_digest_key()
471 append_operation(desc, ctx->alg_type | OP_ALG_ENCRYPT | in hash_digest_key()
473 append_seq_in_ptr(desc, src_dma, *keylen, 0); in hash_digest_key()
474 append_seq_fifo_load(desc, *keylen, FIFOLD_CLASS_CLASS2 | in hash_digest_key()
476 append_seq_out_ptr(desc, dst_dma, digestsize, 0); in hash_digest_key()
477 append_seq_store(desc, digestsize, LDST_CLASS_2_CCB | in hash_digest_key()
484 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in hash_digest_key()
490 ret = caam_jr_enqueue(jrdev, desc, split_key_done, &result); in hash_digest_key()
507 kfree(desc); in hash_digest_key()
632 static void ahash_done(struct device *jrdev, u32 *desc, u32 err, in ahash_done() argument
646 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done()
667 static void ahash_done_bi(struct device *jrdev, u32 *desc, u32 err, in ahash_done_bi() argument
681 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done_bi()
702 static void ahash_done_ctx_src(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_src() argument
716 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done_ctx_src()
737 static void ahash_done_ctx_dst(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_dst() argument
751 edesc = (struct ahash_edesc *)((char *)desc - in ahash_done_ctx_dst()
787 u32 *sh_desc = ctx->sh_desc_update, *desc; in ahash_update_ctx() local
824 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_update_ctx()
850 desc = edesc->hw_desc; in ahash_update_ctx()
851 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | in ahash_update_ctx()
862 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + in ahash_update_ctx()
865 append_seq_out_ptr(desc, state->ctx_dma, ctx->ctx_len, 0); in ahash_update_ctx()
869 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_update_ctx()
870 desc_bytes(desc), 1); in ahash_update_ctx()
873 ret = caam_jr_enqueue(jrdev, desc, ahash_done_bi, req); in ahash_update_ctx()
910 u32 *sh_desc = ctx->sh_desc_fin, *desc; in ahash_final_ctx() local
930 desc = edesc->hw_desc; in ahash_final_ctx()
931 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_final_ctx()
938 ret = ctx_map_to_sec4_sg(desc, jrdev, state, ctx->ctx_len, in ahash_final_ctx()
955 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + buflen, in ahash_final_ctx()
958 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_final_ctx()
967 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_final_ctx()
970 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_src, req); in ahash_final_ctx()
993 u32 *sh_desc = ctx->sh_desc_finup, *desc; in ahash_finup_ctx() local
1017 desc = edesc->hw_desc; in ahash_finup_ctx()
1018 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
1108 desc = edesc->hw_desc; in ahash_digest()
1109 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_digest()
1125 append_seq_in_ptr(desc, src_dma, req->nbytes, options); in ahash_digest()
1127 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_digest()
1136 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_digest()
1139 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_digest()
1161 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_final_no_ctx() local
1178 desc = edesc->hw_desc; in ahash_final_no_ctx()
1179 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_final_no_ctx()
1187 append_seq_in_ptr(desc, state->buf_dma, buflen, 0); in ahash_final_no_ctx()
1189 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_final_no_ctx()
1199 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_final_no_ctx()
1202 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_final_no_ctx()
1230 u32 *desc, *sh_desc = ctx->sh_desc_update_first; in ahash_update_no_ctx() local
1276 desc = edesc->hw_desc; in ahash_update_no_ctx()
1277 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | in ahash_update_no_ctx()
1288 append_seq_in_ptr(desc, edesc->sec4_sg_dma, to_hash, LDST_SGF); in ahash_update_no_ctx()
1290 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_no_ctx()
1296 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_update_no_ctx()
1297 desc_bytes(desc), 1); in ahash_update_no_ctx()
1300 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_dst, req); in ahash_update_no_ctx()
1341 u32 *sh_desc = ctx->sh_desc_digest, *desc; in ahash_finup_no_ctx() local
1364 desc = edesc->hw_desc; in ahash_finup_no_ctx()
1365 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | HDR_REVERSE); in ahash_finup_no_ctx()
1387 append_seq_in_ptr(desc, edesc->sec4_sg_dma, buflen + in ahash_finup_no_ctx()
1390 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_finup_no_ctx()
1399 DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc), 1); in ahash_finup_no_ctx()
1402 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_finup_no_ctx()
1426 u32 *sh_desc = ctx->sh_desc_update_first, *desc; in ahash_update_first() local
1489 desc = edesc->hw_desc; in ahash_update_first()
1490 init_job_desc_shared(desc, ptr, sh_len, HDR_SHARE_DEFER | in ahash_update_first()
1493 append_seq_in_ptr(desc, src_dma, to_hash, options); in ahash_update_first()
1495 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_first()
1501 DUMP_PREFIX_ADDRESS, 16, 4, desc, in ahash_update_first()
1502 desc_bytes(desc), 1); in ahash_update_first()
1505 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_dst, in ahash_update_first()