Lines Matching refs:jrdev

107 	struct device *jrdev;  member
125 void (*ahash_op_done)(struct device *jrdev, u32 *desc, u32 err,
146 static inline int map_seq_out_ptr_ctx(u32 *desc, struct device *jrdev, in map_seq_out_ptr_ctx() argument
151 state->ctx_dma = dma_map_single(jrdev, state->caam_ctx, in map_seq_out_ptr_ctx()
153 if (dma_mapping_error(jrdev, state->ctx_dma)) { in map_seq_out_ptr_ctx()
154 dev_err(jrdev, "unable to map ctx\n"); in map_seq_out_ptr_ctx()
165 static inline int buf_map_to_sec4_sg(struct device *jrdev, in buf_map_to_sec4_sg() argument
174 state->buf_dma = dma_map_single(jrdev, state->buf, buflen, in buf_map_to_sec4_sg()
176 if (dma_mapping_error(jrdev, state->buf_dma)) { in buf_map_to_sec4_sg()
177 dev_err(jrdev, "unable to map buf\n"); in buf_map_to_sec4_sg()
188 static inline int ctx_map_to_sec4_sg(struct device *jrdev, in ctx_map_to_sec4_sg() argument
193 state->ctx_dma = dma_map_single(jrdev, state->caam_ctx, ctx_len, flag); in ctx_map_to_sec4_sg()
194 if (dma_mapping_error(jrdev, state->ctx_dma)) { in ctx_map_to_sec4_sg()
195 dev_err(jrdev, "unable to map ctx\n"); in ctx_map_to_sec4_sg()
209 struct device *jrdev = ctx->jrdev; in ahash_set_sh_desc() local
210 struct caam_drv_private *ctrlpriv = dev_get_drvdata(jrdev->parent); in ahash_set_sh_desc()
219 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_dma, in ahash_set_sh_desc()
230 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_first_dma, in ahash_set_sh_desc()
240 dma_sync_single_for_device(jrdev, ctx->sh_desc_fin_dma, in ahash_set_sh_desc()
251 dma_sync_single_for_device(jrdev, ctx->sh_desc_digest_dma, in ahash_set_sh_desc()
265 struct device *jrdev = ctx->jrdev; in axcbc_set_sh_desc() local
272 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_dma, in axcbc_set_sh_desc()
282 dma_sync_single_for_device(jrdev, ctx->sh_desc_fin_dma, in axcbc_set_sh_desc()
295 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_first_dma, in axcbc_set_sh_desc()
305 dma_sync_single_for_device(jrdev, ctx->sh_desc_digest_dma, in axcbc_set_sh_desc()
317 struct device *jrdev = ctx->jrdev; in acmac_set_sh_desc() local
324 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_dma, in acmac_set_sh_desc()
334 dma_sync_single_for_device(jrdev, ctx->sh_desc_fin_dma, in acmac_set_sh_desc()
344 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_first_dma, in acmac_set_sh_desc()
354 dma_sync_single_for_device(jrdev, ctx->sh_desc_digest_dma, in acmac_set_sh_desc()
367 struct device *jrdev = ctx->jrdev; in hash_digest_key() local
379 key_dma = dma_map_single(jrdev, key, *keylen, DMA_BIDIRECTIONAL); in hash_digest_key()
380 if (dma_mapping_error(jrdev, key_dma)) { in hash_digest_key()
381 dev_err(jrdev, "unable to map key memory\n"); in hash_digest_key()
405 ret = caam_jr_enqueue(jrdev, desc, split_key_done, &result); in hash_digest_key()
415 dma_unmap_single(jrdev, key_dma, *keylen, DMA_BIDIRECTIONAL); in hash_digest_key()
428 struct device *jrdev = ctx->jrdev; in ahash_setkey() local
431 struct caam_drv_private *ctrlpriv = dev_get_drvdata(ctx->jrdev->parent); in ahash_setkey()
435 dev_dbg(jrdev, "keylen %d\n", keylen); in ahash_setkey()
475 dma_sync_single_for_device(ctx->jrdev, in ahash_setkey()
480 ret = gen_split_key(ctx->jrdev, ctx->key, &ctx->adata, key, in ahash_setkey()
497 struct device *jrdev = ctx->jrdev; in axcbc_setkey() local
503 dma_sync_single_for_device(jrdev, ctx->adata.key_dma, keylen, in axcbc_setkey()
584 static inline void ahash_done_cpy(struct device *jrdev, u32 *desc, u32 err, in ahash_done_cpy() argument
588 struct caam_drv_private_jr *jrp = dev_get_drvdata(jrdev); in ahash_done_cpy()
597 dev_dbg(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err); in ahash_done_cpy()
603 ecode = caam_jr_strstatus(jrdev, err); in ahash_done_cpy()
605 ahash_unmap_ctx(jrdev, edesc, req, digestsize, dir); in ahash_done_cpy()
623 static void ahash_done(struct device *jrdev, u32 *desc, u32 err, in ahash_done() argument
626 ahash_done_cpy(jrdev, desc, err, context, DMA_FROM_DEVICE); in ahash_done()
629 static void ahash_done_ctx_src(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_src() argument
632 ahash_done_cpy(jrdev, desc, err, context, DMA_BIDIRECTIONAL); in ahash_done_ctx_src()
635 static inline void ahash_done_switch(struct device *jrdev, u32 *desc, u32 err, in ahash_done_switch() argument
639 struct caam_drv_private_jr *jrp = dev_get_drvdata(jrdev); in ahash_done_switch()
648 dev_dbg(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err); in ahash_done_switch()
653 ecode = caam_jr_strstatus(jrdev, err); in ahash_done_switch()
655 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, dir); in ahash_done_switch()
686 static void ahash_done_bi(struct device *jrdev, u32 *desc, u32 err, in ahash_done_bi() argument
689 ahash_done_switch(jrdev, desc, err, context, DMA_BIDIRECTIONAL); in ahash_done_bi()
692 static void ahash_done_ctx_dst(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_dst() argument
695 ahash_done_switch(jrdev, desc, err, context, DMA_FROM_DEVICE); in ahash_done_ctx_dst()
740 src_dma = dma_map_single(ctx->jrdev, sg, sgsize, DMA_TO_DEVICE); in ahash_edesc_add_src()
741 if (dma_mapping_error(ctx->jrdev, src_dma)) { in ahash_edesc_add_src()
742 dev_err(ctx->jrdev, "unable to map S/G table\n"); in ahash_edesc_add_src()
765 struct device *jrdev = ctx->jrdev; in ahash_do_one_req() local
771 ret = caam_jr_enqueue(jrdev, desc, state->ahash_op_done, req); in ahash_do_one_req()
777 ahash_unmap(jrdev, state->edesc, req, 0); in ahash_do_one_req()
786 static int ahash_enqueue_req(struct device *jrdev, in ahash_enqueue_req() argument
787 void (*cbk)(struct device *jrdev, u32 *desc, in ahash_enqueue_req() argument
792 struct caam_drv_private_jr *jrpriv = dev_get_drvdata(jrdev); in ahash_enqueue_req()
809 ret = caam_jr_enqueue(jrdev, desc, cbk, req); in ahash_enqueue_req()
812 ahash_unmap_ctx(jrdev, edesc, req, dst_len, dir); in ahash_enqueue_req()
825 struct device *jrdev = ctx->jrdev; in ahash_update_ctx() local
856 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_update_ctx()
861 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_update_ctx()
864 dev_err(jrdev, "unable to DMA map source\n"); in ahash_update_ctx()
882 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_update_ctx()
889 ret = ctx_map_to_sec4_sg(jrdev, state, ctx->ctx_len, in ahash_update_ctx()
894 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_update_ctx()
908 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_update_ctx()
911 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_update_ctx()
912 dev_err(jrdev, "unable to map S/G table\n"); in ahash_update_ctx()
926 ret = ahash_enqueue_req(jrdev, ahash_done_bi, req, in ahash_update_ctx()
940 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL); in ahash_update_ctx()
950 struct device *jrdev = ctx->jrdev; in ahash_final_ctx() local
971 ret = ctx_map_to_sec4_sg(jrdev, state, ctx->ctx_len, in ahash_final_ctx()
976 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_final_ctx()
982 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_final_ctx()
984 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_final_ctx()
985 dev_err(jrdev, "unable to map S/G table\n"); in ahash_final_ctx()
998 return ahash_enqueue_req(jrdev, ahash_done_ctx_src, req, in ahash_final_ctx()
1001 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_BIDIRECTIONAL); in ahash_final_ctx()
1011 struct device *jrdev = ctx->jrdev; in ahash_finup_ctx() local
1022 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_finup_ctx()
1027 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_finup_ctx()
1030 dev_err(jrdev, "unable to DMA map source\n"); in ahash_finup_ctx()
1043 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_finup_ctx()
1051 ret = ctx_map_to_sec4_sg(jrdev, state, ctx->ctx_len, in ahash_finup_ctx()
1056 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_finup_ctx()
1072 return ahash_enqueue_req(jrdev, ahash_done_ctx_src, req, in ahash_finup_ctx()
1075 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_BIDIRECTIONAL); in ahash_finup_ctx()
1085 struct device *jrdev = ctx->jrdev; in ahash_digest() local
1096 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_digest()
1101 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_digest()
1104 dev_err(jrdev, "unable to map source for DMA\n"); in ahash_digest()
1115 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_digest()
1124 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1131 ret = map_seq_out_ptr_ctx(desc, jrdev, state, digestsize); in ahash_digest()
1133 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1142 return ahash_enqueue_req(jrdev, ahash_done, req, digestsize, in ahash_digest()
1152 struct device *jrdev = ctx->jrdev; in ahash_final_no_ctx() local
1169 state->buf_dma = dma_map_single(jrdev, buf, buflen, in ahash_final_no_ctx()
1171 if (dma_mapping_error(jrdev, state->buf_dma)) { in ahash_final_no_ctx()
1172 dev_err(jrdev, "unable to map src\n"); in ahash_final_no_ctx()
1179 ret = map_seq_out_ptr_ctx(desc, jrdev, state, digestsize); in ahash_final_no_ctx()
1187 return ahash_enqueue_req(jrdev, ahash_done, req, in ahash_final_no_ctx()
1190 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_final_no_ctx()
1201 struct device *jrdev = ctx->jrdev; in ahash_update_no_ctx() local
1232 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_update_no_ctx()
1237 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_update_no_ctx()
1240 dev_err(jrdev, "unable to DMA map source\n"); in ahash_update_no_ctx()
1258 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_update_no_ctx()
1265 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg, state); in ahash_update_no_ctx()
1273 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_update_no_ctx()
1276 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_update_no_ctx()
1277 dev_err(jrdev, "unable to map S/G table\n"); in ahash_update_no_ctx()
1284 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_no_ctx()
1292 ret = ahash_enqueue_req(jrdev, ahash_done_ctx_dst, req, in ahash_update_no_ctx()
1311 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_TO_DEVICE); in ahash_update_no_ctx()
1322 struct device *jrdev = ctx->jrdev; in ahash_finup_no_ctx() local
1332 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_finup_no_ctx()
1337 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_finup_no_ctx()
1340 dev_err(jrdev, "unable to DMA map source\n"); in ahash_finup_no_ctx()
1355 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_finup_no_ctx()
1364 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg, state); in ahash_finup_no_ctx()
1371 dev_err(jrdev, "unable to map S/G table\n"); in ahash_finup_no_ctx()
1375 ret = map_seq_out_ptr_ctx(desc, jrdev, state, digestsize); in ahash_finup_no_ctx()
1383 return ahash_enqueue_req(jrdev, ahash_done, req, in ahash_finup_no_ctx()
1386 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_finup_no_ctx()
1398 struct device *jrdev = ctx->jrdev; in ahash_update_first() local
1427 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_update_first()
1432 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_update_first()
1435 dev_err(jrdev, "unable to map source for DMA\n"); in ahash_update_first()
1451 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_update_first()
1464 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_first()
1472 ret = ahash_enqueue_req(jrdev, ahash_done_ctx_dst, req, in ahash_update_first()
1494 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_TO_DEVICE); in ahash_update_first()
1788 ctx->jrdev = caam_jr_alloc(); in caam_hash_cra_init()
1789 if (IS_ERR(ctx->jrdev)) { in caam_hash_cra_init()
1791 return PTR_ERR(ctx->jrdev); in caam_hash_cra_init()
1794 priv = dev_get_drvdata(ctx->jrdev->parent); in caam_hash_cra_init()
1821 ctx->adata.key_dma = dma_map_single_attrs(ctx->jrdev, ctx->key, in caam_hash_cra_init()
1825 if (dma_mapping_error(ctx->jrdev, ctx->adata.key_dma)) { in caam_hash_cra_init()
1826 dev_err(ctx->jrdev, "unable to map key\n"); in caam_hash_cra_init()
1827 caam_jr_free(ctx->jrdev); in caam_hash_cra_init()
1832 dma_addr = dma_map_single_attrs(ctx->jrdev, ctx->sh_desc_update, in caam_hash_cra_init()
1836 if (dma_mapping_error(ctx->jrdev, dma_addr)) { in caam_hash_cra_init()
1837 dev_err(ctx->jrdev, "unable to map shared descriptors\n"); in caam_hash_cra_init()
1840 dma_unmap_single_attrs(ctx->jrdev, ctx->adata.key_dma, in caam_hash_cra_init()
1845 caam_jr_free(ctx->jrdev); in caam_hash_cra_init()
1874 dma_unmap_single_attrs(ctx->jrdev, ctx->sh_desc_update_dma, in caam_hash_cra_exit()
1879 dma_unmap_single_attrs(ctx->jrdev, ctx->adata.key_dma, in caam_hash_cra_exit()
1882 caam_jr_free(ctx->jrdev); in caam_hash_cra_exit()