Lines Matching refs:edesc
826 struct aead_edesc *edesc, in aead_unmap() argument
832 caam_unmap(dev, req->src, req->dst, edesc->src_nents, edesc->dst_nents, in aead_unmap()
833 edesc->iv_dma, ivsize, edesc->drv_req.drv_ctx->op_type, in aead_unmap()
834 edesc->qm_sg_dma, edesc->qm_sg_bytes); in aead_unmap()
835 dma_unmap_single(dev, edesc->assoclen_dma, 4, DMA_TO_DEVICE); in aead_unmap()
839 struct ablkcipher_edesc *edesc, in ablkcipher_unmap() argument
845 caam_unmap(dev, req->src, req->dst, edesc->src_nents, edesc->dst_nents, in ablkcipher_unmap()
846 edesc->iv_dma, ivsize, edesc->drv_req.drv_ctx->op_type, in ablkcipher_unmap()
847 edesc->qm_sg_dma, edesc->qm_sg_bytes); in ablkcipher_unmap()
853 struct aead_edesc *edesc; in aead_done() local
876 edesc = container_of(drv_req, typeof(*edesc), drv_req); in aead_done()
877 aead_unmap(qidev, edesc, aead_req); in aead_done()
880 qi_cache_free(edesc); in aead_done()
897 struct aead_edesc *edesc; in aead_edesc_alloc() local
912 edesc = qi_cache_alloc(GFP_DMA | flags); in aead_edesc_alloc()
913 if (unlikely(!edesc)) { in aead_edesc_alloc()
926 qi_cache_free(edesc); in aead_edesc_alloc()
934 qi_cache_free(edesc); in aead_edesc_alloc()
943 qi_cache_free(edesc); in aead_edesc_alloc()
955 qi_cache_free(edesc); in aead_edesc_alloc()
964 qi_cache_free(edesc); in aead_edesc_alloc()
976 qi_cache_free(edesc); in aead_edesc_alloc()
990 sg_table = &edesc->sgt[0]; in aead_edesc_alloc()
998 qi_cache_free(edesc); in aead_edesc_alloc()
1013 qi_cache_free(edesc); in aead_edesc_alloc()
1018 edesc->src_nents = src_nents; in aead_edesc_alloc()
1019 edesc->dst_nents = dst_nents; in aead_edesc_alloc()
1020 edesc->iv_dma = iv_dma; in aead_edesc_alloc()
1021 edesc->drv_req.app_ctx = req; in aead_edesc_alloc()
1022 edesc->drv_req.cbk = aead_done; in aead_edesc_alloc()
1023 edesc->drv_req.drv_ctx = drv_ctx; in aead_edesc_alloc()
1025 edesc->assoclen = cpu_to_caam32(req->assoclen); in aead_edesc_alloc()
1026 edesc->assoclen_dma = dma_map_single(qidev, &edesc->assoclen, 4, in aead_edesc_alloc()
1028 if (dma_mapping_error(qidev, edesc->assoclen_dma)) { in aead_edesc_alloc()
1032 qi_cache_free(edesc); in aead_edesc_alloc()
1036 dma_to_qm_sg_one(sg_table, edesc->assoclen_dma, 4, 0); in aead_edesc_alloc()
1052 dma_unmap_single(qidev, edesc->assoclen_dma, 4, DMA_TO_DEVICE); in aead_edesc_alloc()
1055 qi_cache_free(edesc); in aead_edesc_alloc()
1059 edesc->qm_sg_dma = qm_sg_dma; in aead_edesc_alloc()
1060 edesc->qm_sg_bytes = qm_sg_bytes; in aead_edesc_alloc()
1066 fd_sgt = &edesc->drv_req.fd_sgt[0]; in aead_edesc_alloc()
1085 return edesc; in aead_edesc_alloc()
1090 struct aead_edesc *edesc; in aead_crypt() local
1099 edesc = aead_edesc_alloc(req, encrypt); in aead_crypt()
1100 if (IS_ERR_OR_NULL(edesc)) in aead_crypt()
1101 return PTR_ERR(edesc); in aead_crypt()
1104 ret = caam_qi_enqueue(ctx->qidev, &edesc->drv_req); in aead_crypt()
1108 aead_unmap(ctx->qidev, edesc, req); in aead_crypt()
1109 qi_cache_free(edesc); in aead_crypt()
1143 struct ablkcipher_edesc *edesc; in ablkcipher_done() local
1154 edesc = container_of(drv_req, typeof(*edesc), drv_req); in ablkcipher_done()
1162 edesc->src_nents > 1 ? 100 : ivsize, 1); in ablkcipher_done()
1165 edesc->dst_nents > 1 ? 100 : req->nbytes, 1); in ablkcipher_done()
1168 ablkcipher_unmap(qidev, edesc, req); in ablkcipher_done()
1171 if (edesc->drv_req.drv_ctx->op_type == GIVENCRYPT) { in ablkcipher_done()
1177 iv = (u8 *)edesc->sgt + edesc->qm_sg_bytes; in ablkcipher_done()
1185 if (edesc->drv_req.drv_ctx->op_type != DECRYPT) in ablkcipher_done()
1189 qi_cache_free(edesc); in ablkcipher_done()
1202 struct ablkcipher_edesc *edesc; in ablkcipher_edesc_alloc() local
1268 edesc = qi_cache_alloc(GFP_DMA | flags); in ablkcipher_edesc_alloc()
1269 if (unlikely(!edesc)) { in ablkcipher_edesc_alloc()
1277 sg_table = &edesc->sgt[0]; in ablkcipher_edesc_alloc()
1286 qi_cache_free(edesc); in ablkcipher_edesc_alloc()
1290 edesc->src_nents = src_nents; in ablkcipher_edesc_alloc()
1291 edesc->dst_nents = dst_nents; in ablkcipher_edesc_alloc()
1292 edesc->iv_dma = iv_dma; in ablkcipher_edesc_alloc()
1293 edesc->qm_sg_bytes = qm_sg_bytes; in ablkcipher_edesc_alloc()
1294 edesc->drv_req.app_ctx = req; in ablkcipher_edesc_alloc()
1295 edesc->drv_req.cbk = ablkcipher_done; in ablkcipher_edesc_alloc()
1296 edesc->drv_req.drv_ctx = drv_ctx; in ablkcipher_edesc_alloc()
1305 edesc->qm_sg_dma = dma_map_single(qidev, sg_table, edesc->qm_sg_bytes, in ablkcipher_edesc_alloc()
1307 if (dma_mapping_error(qidev, edesc->qm_sg_dma)) { in ablkcipher_edesc_alloc()
1311 qi_cache_free(edesc); in ablkcipher_edesc_alloc()
1315 fd_sgt = &edesc->drv_req.fd_sgt[0]; in ablkcipher_edesc_alloc()
1317 dma_to_qm_sg_one_last_ext(&fd_sgt[1], edesc->qm_sg_dma, in ablkcipher_edesc_alloc()
1321 dma_to_qm_sg_one_ext(&fd_sgt[0], edesc->qm_sg_dma + in ablkcipher_edesc_alloc()
1324 dma_to_qm_sg_one_ext(&fd_sgt[0], edesc->qm_sg_dma + dst_sg_idx * in ablkcipher_edesc_alloc()
1331 return edesc; in ablkcipher_edesc_alloc()
1344 struct ablkcipher_edesc *edesc; in ablkcipher_giv_edesc_alloc() local
1412 edesc = qi_cache_alloc(GFP_DMA | flags); in ablkcipher_giv_edesc_alloc()
1413 if (!edesc) { in ablkcipher_giv_edesc_alloc()
1421 sg_table = &edesc->sgt[0]; in ablkcipher_giv_edesc_alloc()
1428 qi_cache_free(edesc); in ablkcipher_giv_edesc_alloc()
1432 edesc->src_nents = src_nents; in ablkcipher_giv_edesc_alloc()
1433 edesc->dst_nents = dst_nents; in ablkcipher_giv_edesc_alloc()
1434 edesc->iv_dma = iv_dma; in ablkcipher_giv_edesc_alloc()
1435 edesc->qm_sg_bytes = qm_sg_bytes; in ablkcipher_giv_edesc_alloc()
1436 edesc->drv_req.app_ctx = req; in ablkcipher_giv_edesc_alloc()
1437 edesc->drv_req.cbk = ablkcipher_done; in ablkcipher_giv_edesc_alloc()
1438 edesc->drv_req.drv_ctx = drv_ctx; in ablkcipher_giv_edesc_alloc()
1447 edesc->qm_sg_dma = dma_map_single(qidev, sg_table, edesc->qm_sg_bytes, in ablkcipher_giv_edesc_alloc()
1449 if (dma_mapping_error(qidev, edesc->qm_sg_dma)) { in ablkcipher_giv_edesc_alloc()
1453 qi_cache_free(edesc); in ablkcipher_giv_edesc_alloc()
1457 fd_sgt = &edesc->drv_req.fd_sgt[0]; in ablkcipher_giv_edesc_alloc()
1460 dma_to_qm_sg_one_ext(&fd_sgt[1], edesc->qm_sg_dma, req->nbytes, in ablkcipher_giv_edesc_alloc()
1466 dma_to_qm_sg_one_ext(&fd_sgt[0], edesc->qm_sg_dma + dst_sg_idx * in ablkcipher_giv_edesc_alloc()
1469 return edesc; in ablkcipher_giv_edesc_alloc()
1474 struct ablkcipher_edesc *edesc; in ablkcipher_crypt() local
1484 edesc = ablkcipher_edesc_alloc(req, encrypt); in ablkcipher_crypt()
1485 if (IS_ERR(edesc)) in ablkcipher_crypt()
1486 return PTR_ERR(edesc); in ablkcipher_crypt()
1496 ret = caam_qi_enqueue(ctx->qidev, &edesc->drv_req); in ablkcipher_crypt()
1500 ablkcipher_unmap(ctx->qidev, edesc, req); in ablkcipher_crypt()
1501 qi_cache_free(edesc); in ablkcipher_crypt()
1520 struct ablkcipher_edesc *edesc; in ablkcipher_givencrypt() local
1529 edesc = ablkcipher_giv_edesc_alloc(creq); in ablkcipher_givencrypt()
1530 if (IS_ERR(edesc)) in ablkcipher_givencrypt()
1531 return PTR_ERR(edesc); in ablkcipher_givencrypt()
1533 ret = caam_qi_enqueue(ctx->qidev, &edesc->drv_req); in ablkcipher_givencrypt()
1537 ablkcipher_unmap(ctx->qidev, edesc, req); in ablkcipher_givencrypt()
1538 qi_cache_free(edesc); in ablkcipher_givencrypt()