Lines Matching refs:edesc
505 struct ahash_edesc *edesc, in ahash_unmap() argument
510 if (edesc->src_nents) in ahash_unmap()
511 dma_unmap_sg(dev, req->src, edesc->src_nents, DMA_TO_DEVICE); in ahash_unmap()
512 if (edesc->dst_dma) in ahash_unmap()
513 dma_unmap_single(dev, edesc->dst_dma, dst_len, DMA_FROM_DEVICE); in ahash_unmap()
515 if (edesc->sec4_sg_bytes) in ahash_unmap()
516 dma_unmap_single(dev, edesc->sec4_sg_dma, in ahash_unmap()
517 edesc->sec4_sg_bytes, DMA_TO_DEVICE); in ahash_unmap()
527 struct ahash_edesc *edesc, in ahash_unmap_ctx() argument
538 ahash_unmap(dev, edesc, req, dst_len); in ahash_unmap_ctx()
545 struct ahash_edesc *edesc; in ahash_done() local
555 edesc = container_of(desc, struct ahash_edesc, hw_desc[0]); in ahash_done()
559 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_done()
560 kfree(edesc); in ahash_done()
579 struct ahash_edesc *edesc; in ahash_done_bi() local
589 edesc = container_of(desc, struct ahash_edesc, hw_desc[0]); in ahash_done_bi()
593 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL); in ahash_done_bi()
595 kfree(edesc); in ahash_done_bi()
614 struct ahash_edesc *edesc; in ahash_done_ctx_src() local
624 edesc = container_of(desc, struct ahash_edesc, hw_desc[0]); in ahash_done_ctx_src()
628 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_TO_DEVICE); in ahash_done_ctx_src()
629 kfree(edesc); in ahash_done_ctx_src()
648 struct ahash_edesc *edesc; in ahash_done_ctx_dst() local
658 edesc = container_of(desc, struct ahash_edesc, hw_desc[0]); in ahash_done_ctx_dst()
662 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_FROM_DEVICE); in ahash_done_ctx_dst()
664 kfree(edesc); in ahash_done_ctx_dst()
688 struct ahash_edesc *edesc; in ahash_edesc_alloc() local
691 edesc = kzalloc(sizeof(*edesc) + sg_size, GFP_DMA | flags); in ahash_edesc_alloc()
692 if (!edesc) { in ahash_edesc_alloc()
697 init_job_desc_shared(edesc->hw_desc, sh_desc_dma, desc_len(sh_desc), in ahash_edesc_alloc()
700 return edesc; in ahash_edesc_alloc()
704 struct ahash_edesc *edesc, in ahash_edesc_add_src() argument
713 struct sec4_sg_entry *sg = edesc->sec4_sg; in ahash_edesc_add_src()
724 edesc->sec4_sg_bytes = sgsize; in ahash_edesc_add_src()
725 edesc->sec4_sg_dma = src_dma; in ahash_edesc_add_src()
732 append_seq_in_ptr(edesc->hw_desc, src_dma, first_bytes + to_hash, in ahash_edesc_add_src()
754 struct ahash_edesc *edesc; in ahash_update_ctx() local
788 edesc = ahash_edesc_alloc(ctx, sec4_sg_src_index + mapped_nents, in ahash_update_ctx()
791 if (!edesc) { in ahash_update_ctx()
796 edesc->src_nents = src_nents; in ahash_update_ctx()
797 edesc->sec4_sg_bytes = sec4_sg_bytes; in ahash_update_ctx()
800 edesc->sec4_sg, DMA_BIDIRECTIONAL); in ahash_update_ctx()
804 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_update_ctx()
810 edesc->sec4_sg + sec4_sg_src_index, in ahash_update_ctx()
817 sg_to_sec4_set_last(edesc->sec4_sg + sec4_sg_src_index - in ahash_update_ctx()
821 desc = edesc->hw_desc; in ahash_update_ctx()
823 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_update_ctx()
826 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_update_ctx()
832 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + in ahash_update_ctx()
864 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL); in ahash_update_ctx()
865 kfree(edesc); in ahash_update_ctx()
881 struct ahash_edesc *edesc; in ahash_final_ctx() local
888 edesc = ahash_edesc_alloc(ctx, sec4_sg_src_index, in ahash_final_ctx()
891 if (!edesc) in ahash_final_ctx()
894 desc = edesc->hw_desc; in ahash_final_ctx()
896 edesc->sec4_sg_bytes = sec4_sg_bytes; in ahash_final_ctx()
899 edesc->sec4_sg, DMA_TO_DEVICE); in ahash_final_ctx()
903 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_final_ctx()
907 sg_to_sec4_set_last(edesc->sec4_sg + sec4_sg_src_index - 1); in ahash_final_ctx()
909 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_final_ctx()
911 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_final_ctx()
917 append_seq_in_ptr(desc, edesc->sec4_sg_dma, ctx->ctx_len + buflen, in ahash_final_ctx()
920 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_final_ctx()
922 if (dma_mapping_error(jrdev, edesc->dst_dma)) { in ahash_final_ctx()
939 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_FROM_DEVICE); in ahash_final_ctx()
940 kfree(edesc); in ahash_final_ctx()
957 struct ahash_edesc *edesc; in ahash_finup_ctx() local
980 edesc = ahash_edesc_alloc(ctx, sec4_sg_src_index + mapped_nents, in ahash_finup_ctx()
983 if (!edesc) { in ahash_finup_ctx()
988 desc = edesc->hw_desc; in ahash_finup_ctx()
990 edesc->src_nents = src_nents; in ahash_finup_ctx()
993 edesc->sec4_sg, DMA_TO_DEVICE); in ahash_finup_ctx()
997 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg + 1, state); in ahash_finup_ctx()
1001 ret = ahash_edesc_add_src(ctx, edesc, req, mapped_nents, in ahash_finup_ctx()
1007 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_finup_ctx()
1009 if (dma_mapping_error(jrdev, edesc->dst_dma)) { in ahash_finup_ctx()
1026 ahash_unmap_ctx(jrdev, edesc, req, digestsize, DMA_FROM_DEVICE); in ahash_finup_ctx()
1027 kfree(edesc); in ahash_finup_ctx()
1042 struct ahash_edesc *edesc; in ahash_digest() local
1065 edesc = ahash_edesc_alloc(ctx, mapped_nents > 1 ? mapped_nents : 0, in ahash_digest()
1068 if (!edesc) { in ahash_digest()
1073 edesc->src_nents = src_nents; in ahash_digest()
1075 ret = ahash_edesc_add_src(ctx, edesc, req, mapped_nents, 0, 0, in ahash_digest()
1078 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1079 kfree(edesc); in ahash_digest()
1083 desc = edesc->hw_desc; in ahash_digest()
1085 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_digest()
1087 if (dma_mapping_error(jrdev, edesc->dst_dma)) { in ahash_digest()
1089 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1090 kfree(edesc); in ahash_digest()
1103 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_digest()
1104 kfree(edesc); in ahash_digest()
1123 struct ahash_edesc *edesc; in ahash_final_no_ctx() local
1127 edesc = ahash_edesc_alloc(ctx, 0, ctx->sh_desc_digest, in ahash_final_no_ctx()
1129 if (!edesc) in ahash_final_no_ctx()
1132 desc = edesc->hw_desc; in ahash_final_no_ctx()
1142 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_final_no_ctx()
1144 if (dma_mapping_error(jrdev, edesc->dst_dma)) { in ahash_final_no_ctx()
1158 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_final_no_ctx()
1159 kfree(edesc); in ahash_final_no_ctx()
1164 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_final_no_ctx()
1165 kfree(edesc); in ahash_final_no_ctx()
1185 struct ahash_edesc *edesc; in ahash_update_no_ctx() local
1218 edesc = ahash_edesc_alloc(ctx, 1 + mapped_nents, in ahash_update_no_ctx()
1222 if (!edesc) { in ahash_update_no_ctx()
1227 edesc->src_nents = src_nents; in ahash_update_no_ctx()
1228 edesc->sec4_sg_bytes = sec4_sg_bytes; in ahash_update_no_ctx()
1230 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg, state); in ahash_update_no_ctx()
1235 edesc->sec4_sg + 1, 0); in ahash_update_no_ctx()
1243 desc = edesc->hw_desc; in ahash_update_no_ctx()
1245 edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg, in ahash_update_no_ctx()
1248 if (dma_mapping_error(jrdev, edesc->sec4_sg_dma)) { in ahash_update_no_ctx()
1254 append_seq_in_ptr(desc, edesc->sec4_sg_dma, to_hash, LDST_SGF); in ahash_update_no_ctx()
1290 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_TO_DEVICE); in ahash_update_no_ctx()
1291 kfree(edesc); in ahash_update_no_ctx()
1308 struct ahash_edesc *edesc; in ahash_finup_no_ctx() local
1333 edesc = ahash_edesc_alloc(ctx, sec4_sg_src_index + mapped_nents, in ahash_finup_no_ctx()
1336 if (!edesc) { in ahash_finup_no_ctx()
1341 desc = edesc->hw_desc; in ahash_finup_no_ctx()
1343 edesc->src_nents = src_nents; in ahash_finup_no_ctx()
1344 edesc->sec4_sg_bytes = sec4_sg_bytes; in ahash_finup_no_ctx()
1346 ret = buf_map_to_sec4_sg(jrdev, edesc->sec4_sg, state); in ahash_finup_no_ctx()
1350 ret = ahash_edesc_add_src(ctx, edesc, req, mapped_nents, 1, buflen, in ahash_finup_no_ctx()
1357 edesc->dst_dma = map_seq_out_ptr_result(desc, jrdev, req->result, in ahash_finup_no_ctx()
1359 if (dma_mapping_error(jrdev, edesc->dst_dma)) { in ahash_finup_no_ctx()
1373 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_finup_no_ctx()
1374 kfree(edesc); in ahash_finup_no_ctx()
1379 ahash_unmap(jrdev, edesc, req, digestsize); in ahash_finup_no_ctx()
1380 kfree(edesc); in ahash_finup_no_ctx()
1399 struct ahash_edesc *edesc; in ahash_update_first() local
1429 edesc = ahash_edesc_alloc(ctx, mapped_nents > 1 ? in ahash_update_first()
1434 if (!edesc) { in ahash_update_first()
1439 edesc->src_nents = src_nents; in ahash_update_first()
1441 ret = ahash_edesc_add_src(ctx, edesc, req, mapped_nents, 0, 0, in ahash_update_first()
1450 desc = edesc->hw_desc; in ahash_update_first()
1486 ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_TO_DEVICE); in ahash_update_first()
1487 kfree(edesc); in ahash_update_first()