Lines Matching refs:edesc
43 static void rsa_io_unmap(struct device *dev, struct rsa_edesc *edesc, in rsa_io_unmap() argument
48 dma_unmap_sg(dev, req->dst, edesc->dst_nents, DMA_FROM_DEVICE); in rsa_io_unmap()
49 dma_unmap_sg(dev, req_ctx->fixup_src, edesc->src_nents, DMA_TO_DEVICE); in rsa_io_unmap()
51 if (edesc->sec4_sg_bytes) in rsa_io_unmap()
52 dma_unmap_single(dev, edesc->sec4_sg_dma, edesc->sec4_sg_bytes, in rsa_io_unmap()
56 static void rsa_pub_unmap(struct device *dev, struct rsa_edesc *edesc, in rsa_pub_unmap() argument
62 struct rsa_pub_pdb *pdb = &edesc->pdb.pub; in rsa_pub_unmap()
68 static void rsa_priv_f1_unmap(struct device *dev, struct rsa_edesc *edesc, in rsa_priv_f1_unmap() argument
74 struct rsa_priv_f1_pdb *pdb = &edesc->pdb.priv_f1; in rsa_priv_f1_unmap()
80 static void rsa_priv_f2_unmap(struct device *dev, struct rsa_edesc *edesc, in rsa_priv_f2_unmap() argument
86 struct rsa_priv_f2_pdb *pdb = &edesc->pdb.priv_f2; in rsa_priv_f2_unmap()
97 static void rsa_priv_f3_unmap(struct device *dev, struct rsa_edesc *edesc, in rsa_priv_f3_unmap() argument
103 struct rsa_priv_f3_pdb *pdb = &edesc->pdb.priv_f3; in rsa_priv_f3_unmap()
122 struct rsa_edesc *edesc; in rsa_pub_done() local
129 edesc = req_ctx->edesc; in rsa_pub_done()
130 has_bklog = edesc->bklog; in rsa_pub_done()
132 rsa_pub_unmap(dev, edesc, req); in rsa_pub_done()
133 rsa_io_unmap(dev, edesc, req); in rsa_pub_done()
134 kfree(edesc); in rsa_pub_done()
155 struct rsa_edesc *edesc; in rsa_priv_f_done() local
162 edesc = req_ctx->edesc; in rsa_priv_f_done()
163 has_bklog = edesc->bklog; in rsa_priv_f_done()
167 rsa_priv_f1_unmap(dev, edesc, req); in rsa_priv_f_done()
170 rsa_priv_f2_unmap(dev, edesc, req); in rsa_priv_f_done()
173 rsa_priv_f3_unmap(dev, edesc, req); in rsa_priv_f_done()
176 rsa_io_unmap(dev, edesc, req); in rsa_priv_f_done()
177 kfree(edesc); in rsa_priv_f_done()
249 struct rsa_edesc *edesc; in rsa_edesc_alloc() local
313 edesc = kzalloc(sizeof(*edesc) + desclen + sec4_sg_bytes, in rsa_edesc_alloc()
315 if (!edesc) in rsa_edesc_alloc()
318 edesc->sec4_sg = (void *)edesc + sizeof(*edesc) + desclen; in rsa_edesc_alloc()
320 dma_to_sec4_sg_one(edesc->sec4_sg, ctx->padding_dma, diff_size, in rsa_edesc_alloc()
325 edesc->sec4_sg + !!diff_size, 0); in rsa_edesc_alloc()
329 edesc->sec4_sg + sec4_sg_index, 0); in rsa_edesc_alloc()
332 edesc->src_nents = src_nents; in rsa_edesc_alloc()
333 edesc->dst_nents = dst_nents; in rsa_edesc_alloc()
335 req_ctx->edesc = edesc; in rsa_edesc_alloc()
338 return edesc; in rsa_edesc_alloc()
340 edesc->mapped_src_nents = mapped_src_nents; in rsa_edesc_alloc()
341 edesc->mapped_dst_nents = mapped_dst_nents; in rsa_edesc_alloc()
343 edesc->sec4_sg_dma = dma_map_single(dev, edesc->sec4_sg, in rsa_edesc_alloc()
345 if (dma_mapping_error(dev, edesc->sec4_sg_dma)) { in rsa_edesc_alloc()
350 edesc->sec4_sg_bytes = sec4_sg_bytes; in rsa_edesc_alloc()
353 DUMP_PREFIX_ADDRESS, 16, 4, edesc->sec4_sg, in rsa_edesc_alloc()
354 edesc->sec4_sg_bytes, 1); in rsa_edesc_alloc()
356 return edesc; in rsa_edesc_alloc()
359 kfree(edesc); in rsa_edesc_alloc()
376 u32 *desc = req_ctx->edesc->hw_desc; in akcipher_do_one_req()
379 req_ctx->edesc->bklog = true; in akcipher_do_one_req()
384 rsa_pub_unmap(jrdev, req_ctx->edesc, req); in akcipher_do_one_req()
385 rsa_io_unmap(jrdev, req_ctx->edesc, req); in akcipher_do_one_req()
386 kfree(req_ctx->edesc); in akcipher_do_one_req()
395 struct rsa_edesc *edesc) in set_rsa_pub_pdb() argument
402 struct rsa_pub_pdb *pdb = &edesc->pdb.pub; in set_rsa_pub_pdb()
418 if (edesc->mapped_src_nents > 1) { in set_rsa_pub_pdb()
420 pdb->f_dma = edesc->sec4_sg_dma; in set_rsa_pub_pdb()
421 sec4_sg_index += edesc->mapped_src_nents; in set_rsa_pub_pdb()
426 if (edesc->mapped_dst_nents > 1) { in set_rsa_pub_pdb()
428 pdb->g_dma = edesc->sec4_sg_dma + in set_rsa_pub_pdb()
441 struct rsa_edesc *edesc) in set_rsa_priv_f1_pdb() argument
447 struct rsa_priv_f1_pdb *pdb = &edesc->pdb.priv_f1; in set_rsa_priv_f1_pdb()
463 if (edesc->mapped_src_nents > 1) { in set_rsa_priv_f1_pdb()
465 pdb->g_dma = edesc->sec4_sg_dma; in set_rsa_priv_f1_pdb()
466 sec4_sg_index += edesc->mapped_src_nents; in set_rsa_priv_f1_pdb()
474 if (edesc->mapped_dst_nents > 1) { in set_rsa_priv_f1_pdb()
476 pdb->f_dma = edesc->sec4_sg_dma + in set_rsa_priv_f1_pdb()
488 struct rsa_edesc *edesc) in set_rsa_priv_f2_pdb() argument
494 struct rsa_priv_f2_pdb *pdb = &edesc->pdb.priv_f2; in set_rsa_priv_f2_pdb()
529 if (edesc->mapped_src_nents > 1) { in set_rsa_priv_f2_pdb()
531 pdb->g_dma = edesc->sec4_sg_dma; in set_rsa_priv_f2_pdb()
532 sec4_sg_index += edesc->mapped_src_nents; in set_rsa_priv_f2_pdb()
539 if (edesc->mapped_dst_nents > 1) { in set_rsa_priv_f2_pdb()
541 pdb->f_dma = edesc->sec4_sg_dma + in set_rsa_priv_f2_pdb()
565 struct rsa_edesc *edesc) in set_rsa_priv_f3_pdb() argument
571 struct rsa_priv_f3_pdb *pdb = &edesc->pdb.priv_f3; in set_rsa_priv_f3_pdb()
618 if (edesc->mapped_src_nents > 1) { in set_rsa_priv_f3_pdb()
620 pdb->g_dma = edesc->sec4_sg_dma; in set_rsa_priv_f3_pdb()
621 sec4_sg_index += edesc->mapped_src_nents; in set_rsa_priv_f3_pdb()
628 if (edesc->mapped_dst_nents > 1) { in set_rsa_priv_f3_pdb()
630 pdb->f_dma = edesc->sec4_sg_dma + in set_rsa_priv_f3_pdb()
667 struct rsa_edesc *edesc = req_ctx->edesc; in akcipher_enqueue_req() local
668 u32 *desc = edesc->hw_desc; in akcipher_enqueue_req()
686 rsa_priv_f1_unmap(jrdev, edesc, req); in akcipher_enqueue_req()
689 rsa_priv_f2_unmap(jrdev, edesc, req); in akcipher_enqueue_req()
692 rsa_priv_f3_unmap(jrdev, edesc, req); in akcipher_enqueue_req()
695 rsa_pub_unmap(jrdev, edesc, req); in akcipher_enqueue_req()
697 rsa_io_unmap(jrdev, edesc, req); in akcipher_enqueue_req()
698 kfree(edesc); in akcipher_enqueue_req()
710 struct rsa_edesc *edesc; in caam_rsa_enc() local
723 edesc = rsa_edesc_alloc(req, DESC_RSA_PUB_LEN); in caam_rsa_enc()
724 if (IS_ERR(edesc)) in caam_rsa_enc()
725 return PTR_ERR(edesc); in caam_rsa_enc()
728 ret = set_rsa_pub_pdb(req, edesc); in caam_rsa_enc()
733 init_rsa_pub_desc(edesc->hw_desc, &edesc->pdb.pub); in caam_rsa_enc()
738 rsa_io_unmap(jrdev, edesc, req); in caam_rsa_enc()
739 kfree(edesc); in caam_rsa_enc()
748 struct rsa_edesc *edesc; in caam_rsa_dec_priv_f1() local
752 edesc = rsa_edesc_alloc(req, DESC_RSA_PRIV_F1_LEN); in caam_rsa_dec_priv_f1()
753 if (IS_ERR(edesc)) in caam_rsa_dec_priv_f1()
754 return PTR_ERR(edesc); in caam_rsa_dec_priv_f1()
757 ret = set_rsa_priv_f1_pdb(req, edesc); in caam_rsa_dec_priv_f1()
762 init_rsa_priv_f1_desc(edesc->hw_desc, &edesc->pdb.priv_f1); in caam_rsa_dec_priv_f1()
767 rsa_io_unmap(jrdev, edesc, req); in caam_rsa_dec_priv_f1()
768 kfree(edesc); in caam_rsa_dec_priv_f1()
777 struct rsa_edesc *edesc; in caam_rsa_dec_priv_f2() local
781 edesc = rsa_edesc_alloc(req, DESC_RSA_PRIV_F2_LEN); in caam_rsa_dec_priv_f2()
782 if (IS_ERR(edesc)) in caam_rsa_dec_priv_f2()
783 return PTR_ERR(edesc); in caam_rsa_dec_priv_f2()
786 ret = set_rsa_priv_f2_pdb(req, edesc); in caam_rsa_dec_priv_f2()
791 init_rsa_priv_f2_desc(edesc->hw_desc, &edesc->pdb.priv_f2); in caam_rsa_dec_priv_f2()
796 rsa_io_unmap(jrdev, edesc, req); in caam_rsa_dec_priv_f2()
797 kfree(edesc); in caam_rsa_dec_priv_f2()
806 struct rsa_edesc *edesc; in caam_rsa_dec_priv_f3() local
810 edesc = rsa_edesc_alloc(req, DESC_RSA_PRIV_F3_LEN); in caam_rsa_dec_priv_f3()
811 if (IS_ERR(edesc)) in caam_rsa_dec_priv_f3()
812 return PTR_ERR(edesc); in caam_rsa_dec_priv_f3()
815 ret = set_rsa_priv_f3_pdb(req, edesc); in caam_rsa_dec_priv_f3()
820 init_rsa_priv_f3_desc(edesc->hw_desc, &edesc->pdb.priv_f3); in caam_rsa_dec_priv_f3()
825 rsa_io_unmap(jrdev, edesc, req); in caam_rsa_dec_priv_f3()
826 kfree(edesc); in caam_rsa_dec_priv_f3()