Lines Matching refs:jrdev
100 struct device *jrdev; member
163 static inline int map_seq_out_ptr_ctx(u32 *desc, struct device *jrdev, in map_seq_out_ptr_ctx() argument
168 state->ctx_dma = dma_map_single(jrdev, state->caam_ctx, in map_seq_out_ptr_ctx()
170 if (dma_mapping_error(jrdev, state->ctx_dma)) { in map_seq_out_ptr_ctx()
171 dev_err(jrdev, "unable to map ctx\n"); in map_seq_out_ptr_ctx()
182 static inline int buf_map_to_sec4_sg(struct device *jrdev, in buf_map_to_sec4_sg() argument
191 state->buf_dma = dma_map_single(jrdev, current_buf(state), buflen, in buf_map_to_sec4_sg()
193 if (dma_mapping_error(jrdev, state->buf_dma)) { in buf_map_to_sec4_sg()
194 dev_err(jrdev, "unable to map buf\n"); in buf_map_to_sec4_sg()
205 static inline int ctx_map_to_sec4_sg(struct device *jrdev, in ctx_map_to_sec4_sg() argument
210 state->ctx_dma = dma_map_single(jrdev, state->caam_ctx, ctx_len, flag); in ctx_map_to_sec4_sg()
211 if (dma_mapping_error(jrdev, state->ctx_dma)) { in ctx_map_to_sec4_sg()
212 dev_err(jrdev, "unable to map ctx\n"); in ctx_map_to_sec4_sg()
226 struct device *jrdev = ctx->jrdev; in ahash_set_sh_desc() local
227 struct caam_drv_private *ctrlpriv = dev_get_drvdata(jrdev->parent); in ahash_set_sh_desc()
236 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_dma, in ahash_set_sh_desc()
247 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_first_dma, in ahash_set_sh_desc()
257 dma_sync_single_for_device(jrdev, ctx->sh_desc_fin_dma, in ahash_set_sh_desc()
268 dma_sync_single_for_device(jrdev, ctx->sh_desc_digest_dma, in ahash_set_sh_desc()
282 struct device *jrdev = ctx->jrdev; in axcbc_set_sh_desc() local
289 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_dma, in axcbc_set_sh_desc()
299 dma_sync_single_for_device(jrdev, ctx->sh_desc_fin_dma, in axcbc_set_sh_desc()
312 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_first_dma, in axcbc_set_sh_desc()
322 dma_sync_single_for_device(jrdev, ctx->sh_desc_digest_dma, in axcbc_set_sh_desc()
334 struct device *jrdev = ctx->jrdev; in acmac_set_sh_desc() local
341 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_dma, in acmac_set_sh_desc()
351 dma_sync_single_for_device(jrdev, ctx->sh_desc_fin_dma, in acmac_set_sh_desc()
361 dma_sync_single_for_device(jrdev, ctx->sh_desc_update_first_dma, in acmac_set_sh_desc()
371 dma_sync_single_for_device(jrdev, ctx->sh_desc_digest_dma, in acmac_set_sh_desc()
384 struct device *jrdev = ctx->jrdev; in hash_digest_key() local
392 dev_err(jrdev, "unable to allocate key input memory\n"); in hash_digest_key()
398 key_dma = dma_map_single(jrdev, key, *keylen, DMA_BIDIRECTIONAL); in hash_digest_key()
399 if (dma_mapping_error(jrdev, key_dma)) { in hash_digest_key()
400 dev_err(jrdev, "unable to map key memory\n"); in hash_digest_key()
424 ret = caam_jr_enqueue(jrdev, desc, split_key_done, &result); in hash_digest_key()
434 dma_unmap_single(jrdev, key_dma, *keylen, DMA_BIDIRECTIONAL); in hash_digest_key()
447 struct device *jrdev = ctx->jrdev; in ahash_setkey() local
450 struct caam_drv_private *ctrlpriv = dev_get_drvdata(ctx->jrdev->parent); in ahash_setkey()
454 dev_dbg(jrdev, "keylen %d\n", keylen); in ahash_setkey()
488 dma_sync_single_for_device(ctx->jrdev, in ahash_setkey()
493 ret = gen_split_key(ctx->jrdev, ctx->key, &ctx->adata, key, in ahash_setkey()
511 struct device *jrdev = ctx->jrdev; in axcbc_setkey() local
519 dma_sync_single_for_device(jrdev, ctx->adata.key_dma, keylen, in axcbc_setkey()
600 static void ahash_done(struct device *jrdev, u32 *desc, u32 err, in ahash_done() argument
611 dev_dbg(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err); in ahash_done()
615 ecode = caam_jr_strstatus(jrdev, err); in ahash_done()
617 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_FROM_DEVICE); in ahash_done()
628 static void ahash_done_bi(struct device *jrdev, u32 *desc, u32 err, in ahash_done_bi() argument
639 dev_dbg(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err); in ahash_done_bi()
643 ecode = caam_jr_strstatus(jrdev, err); in ahash_done_bi()
645 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL); in ahash_done_bi()
660 static void ahash_done_ctx_src(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_src() argument
671 dev_dbg(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err); in ahash_done_ctx_src()
675 ecode = caam_jr_strstatus(jrdev, err); in ahash_done_ctx_src()
677 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_BIDIRECTIONAL); in ahash_done_ctx_src()
688 static void ahash_done_ctx_dst(struct device *jrdev, u32 *desc, u32 err, in ahash_done_ctx_dst() argument
699 dev_dbg(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err); in ahash_done_ctx_dst()
703 ecode = caam_jr_strstatus(jrdev, err); in ahash_done_ctx_dst()
705 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_FROM_DEVICE); in ahash_done_ctx_dst()
734 dev_err(ctx->jrdev, "could not allocate extended descriptor\n"); in ahash_edesc_alloc()
760 src_dma = dma_map_single(ctx->jrdev, sg, sgsize, DMA_TO_DEVICE); in ahash_edesc_add_src()
761 if (dma_mapping_error(ctx->jrdev, src_dma)) { in ahash_edesc_add_src()
762 dev_err(ctx->jrdev, "unable to map S/G table\n"); in ahash_edesc_add_src()
786 struct device *jrdev = ctx->jrdev; in ahash_update_ctx() local
821 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_update_ctx()
826 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_update_ctx()
829 dev_err(jrdev, "unable to DMA map source\n"); in ahash_update_ctx()
847 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_update_ctx()
854 ret = ctx_map_to_sec4_sg(jrdev, state, ctx->ctx_len, in ahash_update_ctx()
859 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_update_ctx()
877 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_update_ctx()
880 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_update_ctx()
881 dev_err(jrdev, "unable to map S/G table\n"); in ahash_update_ctx()
895 ret = caam_jr_enqueue(jrdev, desc, ahash_done_bi, req); in ahash_update_ctx()
915 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL); in ahash_update_ctx()
925 struct device *jrdev = ctx->jrdev; in ahash_final_ctx() local
948 ret = ctx_map_to_sec4_sg(jrdev, state, ctx->ctx_len, in ahash_final_ctx()
953 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_final_ctx()
959 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_final_ctx()
961 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_final_ctx()
962 dev_err(jrdev, "unable to map S/G table\n"); in ahash_final_ctx()
975 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_src, req); in ahash_final_ctx()
981 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_BIDIRECTIONAL); in ahash_final_ctx()
991 struct device *jrdev = ctx->jrdev; in ahash_finup_ctx() local
1004 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_finup_ctx()
1009 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_finup_ctx()
1012 dev_err(jrdev, "unable to DMA map source\n"); in ahash_finup_ctx()
1026 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_finup_ctx()
1034 ret = ctx_map_to_sec4_sg(jrdev, state, ctx->ctx_len, in ahash_finup_ctx()
1039 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_finup_ctx()
1055 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_src, req); in ahash_finup_ctx()
1061 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_BIDIRECTIONAL); in ahash_finup_ctx()
1071 struct device *jrdev = ctx->jrdev; in ahash_digest() local
1084 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_digest()
1089 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_digest()
1092 dev_err(jrdev, "unable to map source for DMA\n"); in ahash_digest()
1104 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_digest()
1113 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1120 ret = map_seq_out_ptr_ctx(desc, jrdev, state, digestsize); in ahash_digest()
1122 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1131 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_digest()
1135 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_FROM_DEVICE); in ahash_digest()
1148 struct device *jrdev = ctx->jrdev; in ahash_final_no_ctx() local
1167 state->buf_dma = dma_map_single(jrdev, buf, buflen, in ahash_final_no_ctx()
1169 if (dma_mapping_error(jrdev, state->buf_dma)) { in ahash_final_no_ctx()
1170 dev_err(jrdev, "unable to map src\n"); in ahash_final_no_ctx()
1177 ret = map_seq_out_ptr_ctx(desc, jrdev, state, digestsize); in ahash_final_no_ctx()
1185 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_final_no_ctx()
1189 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_FROM_DEVICE); in ahash_final_no_ctx()
1195 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_final_no_ctx()
1207 struct device *jrdev = ctx->jrdev; in ahash_update_no_ctx() local
1241 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_update_no_ctx()
1246 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_update_no_ctx()
1249 dev_err(jrdev, "unable to DMA map source\n"); in ahash_update_no_ctx()
1268 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_update_no_ctx()
1275 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg, state); in ahash_update_no_ctx()
1289 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_update_no_ctx()
1292 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_update_no_ctx()
1293 dev_err(jrdev, "unable to map S/G table\n"); in ahash_update_no_ctx()
1300 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_no_ctx()
1308 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_dst, req); in ahash_update_no_ctx()
1331 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_TO_DEVICE); in ahash_update_no_ctx()
1342 struct device *jrdev = ctx->jrdev; in ahash_finup_no_ctx() local
1354 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_finup_no_ctx()
1359 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_finup_no_ctx()
1362 dev_err(jrdev, "unable to DMA map source\n"); in ahash_finup_no_ctx()
1378 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_finup_no_ctx()
1387 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg, state); in ahash_finup_no_ctx()
1394 dev_err(jrdev, "unable to map S/G table\n"); in ahash_finup_no_ctx()
1398 ret = map_seq_out_ptr_ctx(desc, jrdev, state, digestsize); in ahash_finup_no_ctx()
1406 ret = caam_jr_enqueue(jrdev, desc, ahash_done, req); in ahash_finup_no_ctx()
1410 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_FROM_DEVICE); in ahash_finup_no_ctx()
1416 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_finup_no_ctx()
1428 struct device *jrdev = ctx->jrdev; in ahash_update_first() local
1458 dev_err(jrdev, "Invalid number of src SG.\n"); in ahash_update_first()
1463 mapped_nents = dma_map_sg(jrdev, req->src, src_nents, in ahash_update_first()
1466 dev_err(jrdev, "unable to map source for DMA\n"); in ahash_update_first()
1483 dma_unmap_sg(jrdev, req->src, src_nents, DMA_TO_DEVICE); in ahash_update_first()
1500 ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len); in ahash_update_first()
1508 ret = caam_jr_enqueue(jrdev, desc, ahash_done_ctx_dst, req); in ahash_update_first()
1531 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_TO_DEVICE); in ahash_update_first()
1831 ctx->jrdev = caam_jr_alloc(); in caam_hash_cra_init()
1832 if (IS_ERR(ctx->jrdev)) { in caam_hash_cra_init()
1834 return PTR_ERR(ctx->jrdev); in caam_hash_cra_init()
1837 priv = dev_get_drvdata(ctx->jrdev->parent); in caam_hash_cra_init()
1864 ctx->adata.key_dma = dma_map_single_attrs(ctx->jrdev, ctx->key, in caam_hash_cra_init()
1868 if (dma_mapping_error(ctx->jrdev, ctx->adata.key_dma)) { in caam_hash_cra_init()
1869 dev_err(ctx->jrdev, "unable to map key\n"); in caam_hash_cra_init()
1870 caam_jr_free(ctx->jrdev); in caam_hash_cra_init()
1875 dma_addr = dma_map_single_attrs(ctx->jrdev, ctx->sh_desc_update, in caam_hash_cra_init()
1878 if (dma_mapping_error(ctx->jrdev, dma_addr)) { in caam_hash_cra_init()
1879 dev_err(ctx->jrdev, "unable to map shared descriptors\n"); in caam_hash_cra_init()
1882 dma_unmap_single_attrs(ctx->jrdev, ctx->adata.key_dma, in caam_hash_cra_init()
1887 caam_jr_free(ctx->jrdev); in caam_hash_cra_init()
1914 dma_unmap_single_attrs(ctx->jrdev, ctx->sh_desc_update_dma, in caam_hash_cra_exit()
1918 dma_unmap_single_attrs(ctx->jrdev, ctx->adata.key_dma, in caam_hash_cra_exit()
1921 caam_jr_free(ctx->jrdev); in caam_hash_cra_exit()