Lines Matching refs:areq_ctx

66 	struct aead_req_ctx *areq_ctx = aead_request_ctx(req);  in cc_copy_mac()  local
68 u32 skip = areq_ctx->assoclen + req->cryptlen; in cc_copy_mac()
70 if (areq_ctx->is_gcm4543) in cc_copy_mac()
73 cc_copy_sg_portion(dev, areq_ctx->backup_mac, req->src, in cc_copy_mac()
74 (skip - areq_ctx->req_authsize), skip, dir); in cc_copy_mac()
328 cc_set_aead_conf_buf(struct device *dev, struct aead_req_ctx *areq_ctx, in cc_set_aead_conf_buf() argument
334 sg_init_one(&areq_ctx->ccm_adata_sg, config_data, in cc_set_aead_conf_buf()
335 AES_BLOCK_SIZE + areq_ctx->ccm_hdr_size); in cc_set_aead_conf_buf()
336 if (dma_map_sg(dev, &areq_ctx->ccm_adata_sg, 1, DMA_TO_DEVICE) != 1) { in cc_set_aead_conf_buf()
341 &sg_dma_address(&areq_ctx->ccm_adata_sg), in cc_set_aead_conf_buf()
342 sg_page(&areq_ctx->ccm_adata_sg), in cc_set_aead_conf_buf()
343 sg_virt(&areq_ctx->ccm_adata_sg), in cc_set_aead_conf_buf()
344 areq_ctx->ccm_adata_sg.offset, areq_ctx->ccm_adata_sg.length); in cc_set_aead_conf_buf()
347 cc_add_sg_entry(dev, sg_data, 1, &areq_ctx->ccm_adata_sg, in cc_set_aead_conf_buf()
348 (AES_BLOCK_SIZE + areq_ctx->ccm_hdr_size), in cc_set_aead_conf_buf()
354 static int cc_set_hash_buf(struct device *dev, struct ahash_req_ctx *areq_ctx, in cc_set_hash_buf() argument
360 sg_init_one(areq_ctx->buff_sg, curr_buff, curr_buff_cnt); in cc_set_hash_buf()
361 if (dma_map_sg(dev, areq_ctx->buff_sg, 1, DMA_TO_DEVICE) != 1) { in cc_set_hash_buf()
366 &sg_dma_address(areq_ctx->buff_sg), sg_page(areq_ctx->buff_sg), in cc_set_hash_buf()
367 sg_virt(areq_ctx->buff_sg), areq_ctx->buff_sg->offset, in cc_set_hash_buf()
368 areq_ctx->buff_sg->length); in cc_set_hash_buf()
369 areq_ctx->data_dma_buf_type = CC_DMA_BUF_DLLI; in cc_set_hash_buf()
370 areq_ctx->curr_sg = areq_ctx->buff_sg; in cc_set_hash_buf()
371 areq_ctx->in_nents = 0; in cc_set_hash_buf()
373 cc_add_sg_entry(dev, sg_data, 1, areq_ctx->buff_sg, curr_buff_cnt, 0, in cc_set_hash_buf()
497 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_unmap_aead_request() local
498 unsigned int hw_iv_size = areq_ctx->hw_iv_size; in cc_unmap_aead_request()
501 if (areq_ctx->mac_buf_dma_addr) { in cc_unmap_aead_request()
502 dma_unmap_single(dev, areq_ctx->mac_buf_dma_addr, in cc_unmap_aead_request()
506 if (areq_ctx->cipher_mode == DRV_CIPHER_GCTR) { in cc_unmap_aead_request()
507 if (areq_ctx->hkey_dma_addr) { in cc_unmap_aead_request()
508 dma_unmap_single(dev, areq_ctx->hkey_dma_addr, in cc_unmap_aead_request()
512 if (areq_ctx->gcm_block_len_dma_addr) { in cc_unmap_aead_request()
513 dma_unmap_single(dev, areq_ctx->gcm_block_len_dma_addr, in cc_unmap_aead_request()
517 if (areq_ctx->gcm_iv_inc1_dma_addr) { in cc_unmap_aead_request()
518 dma_unmap_single(dev, areq_ctx->gcm_iv_inc1_dma_addr, in cc_unmap_aead_request()
522 if (areq_ctx->gcm_iv_inc2_dma_addr) { in cc_unmap_aead_request()
523 dma_unmap_single(dev, areq_ctx->gcm_iv_inc2_dma_addr, in cc_unmap_aead_request()
528 if (areq_ctx->ccm_hdr_size != ccm_header_size_null) { in cc_unmap_aead_request()
529 if (areq_ctx->ccm_iv0_dma_addr) { in cc_unmap_aead_request()
530 dma_unmap_single(dev, areq_ctx->ccm_iv0_dma_addr, in cc_unmap_aead_request()
534 dma_unmap_sg(dev, &areq_ctx->ccm_adata_sg, 1, DMA_TO_DEVICE); in cc_unmap_aead_request()
536 if (areq_ctx->gen_ctx.iv_dma_addr) { in cc_unmap_aead_request()
537 dma_unmap_single(dev, areq_ctx->gen_ctx.iv_dma_addr, in cc_unmap_aead_request()
539 kzfree(areq_ctx->gen_ctx.iv); in cc_unmap_aead_request()
543 if ((areq_ctx->assoc_buff_type == CC_DMA_BUF_MLLI || in cc_unmap_aead_request()
544 areq_ctx->data_buff_type == CC_DMA_BUF_MLLI) && in cc_unmap_aead_request()
545 (areq_ctx->mlli_params.mlli_virt_addr)) { in cc_unmap_aead_request()
547 &areq_ctx->mlli_params.mlli_dma_addr, in cc_unmap_aead_request()
548 areq_ctx->mlli_params.mlli_virt_addr); in cc_unmap_aead_request()
549 dma_pool_free(areq_ctx->mlli_params.curr_pool, in cc_unmap_aead_request()
550 areq_ctx->mlli_params.mlli_virt_addr, in cc_unmap_aead_request()
551 areq_ctx->mlli_params.mlli_dma_addr); in cc_unmap_aead_request()
555 sg_virt(req->src), areq_ctx->src.nents, areq_ctx->assoc.nents, in cc_unmap_aead_request()
556 areq_ctx->assoclen, req->cryptlen); in cc_unmap_aead_request()
566 areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_DECRYPT && in cc_unmap_aead_request()
587 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_aead_chain_iv() local
588 unsigned int hw_iv_size = areq_ctx->hw_iv_size; in cc_aead_chain_iv()
594 areq_ctx->gen_ctx.iv_dma_addr = 0; in cc_aead_chain_iv()
595 areq_ctx->gen_ctx.iv = NULL; in cc_aead_chain_iv()
599 areq_ctx->gen_ctx.iv = kmemdup(req->iv, hw_iv_size, flags); in cc_aead_chain_iv()
600 if (!areq_ctx->gen_ctx.iv) in cc_aead_chain_iv()
603 areq_ctx->gen_ctx.iv_dma_addr = in cc_aead_chain_iv()
604 dma_map_single(dev, areq_ctx->gen_ctx.iv, hw_iv_size, in cc_aead_chain_iv()
606 if (dma_mapping_error(dev, areq_ctx->gen_ctx.iv_dma_addr)) { in cc_aead_chain_iv()
609 kzfree(areq_ctx->gen_ctx.iv); in cc_aead_chain_iv()
610 areq_ctx->gen_ctx.iv = NULL; in cc_aead_chain_iv()
616 hw_iv_size, req->iv, &areq_ctx->gen_ctx.iv_dma_addr); in cc_aead_chain_iv()
618 if (do_chain && areq_ctx->plaintext_authenticate_only) { in cc_aead_chain_iv()
624 (areq_ctx->gen_ctx.iv_dma_addr + iv_ofs), in cc_aead_chain_iv()
626 &areq_ctx->assoc.mlli_nents); in cc_aead_chain_iv()
627 areq_ctx->assoc_buff_type = CC_DMA_BUF_MLLI; in cc_aead_chain_iv()
639 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_aead_chain_assoc() local
643 unsigned int size_of_assoc = areq_ctx->assoclen; in cc_aead_chain_assoc()
646 if (areq_ctx->is_gcm4543) in cc_aead_chain_assoc()
654 if (areq_ctx->assoclen == 0) { in cc_aead_chain_assoc()
655 areq_ctx->assoc_buff_type = CC_DMA_BUF_NULL; in cc_aead_chain_assoc()
656 areq_ctx->assoc.nents = 0; in cc_aead_chain_assoc()
657 areq_ctx->assoc.mlli_nents = 0; in cc_aead_chain_assoc()
659 cc_dma_buf_type(areq_ctx->assoc_buff_type), in cc_aead_chain_assoc()
660 areq_ctx->assoc.nents); in cc_aead_chain_assoc()
673 areq_ctx->assoc.nents = mapped_nents; in cc_aead_chain_assoc()
678 if (areq_ctx->ccm_hdr_size != ccm_header_size_null) { in cc_aead_chain_assoc()
681 (areq_ctx->assoc.nents + 1), in cc_aead_chain_assoc()
688 if (mapped_nents == 1 && areq_ctx->ccm_hdr_size == ccm_header_size_null) in cc_aead_chain_assoc()
689 areq_ctx->assoc_buff_type = CC_DMA_BUF_DLLI; in cc_aead_chain_assoc()
691 areq_ctx->assoc_buff_type = CC_DMA_BUF_MLLI; in cc_aead_chain_assoc()
693 if (do_chain || areq_ctx->assoc_buff_type == CC_DMA_BUF_MLLI) { in cc_aead_chain_assoc()
695 cc_dma_buf_type(areq_ctx->assoc_buff_type), in cc_aead_chain_assoc()
696 areq_ctx->assoc.nents); in cc_aead_chain_assoc()
697 cc_add_sg_entry(dev, sg_data, areq_ctx->assoc.nents, req->src, in cc_aead_chain_assoc()
698 areq_ctx->assoclen, 0, is_last, in cc_aead_chain_assoc()
699 &areq_ctx->assoc.mlli_nents); in cc_aead_chain_assoc()
700 areq_ctx->assoc_buff_type = CC_DMA_BUF_MLLI; in cc_aead_chain_assoc()
710 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_prepare_aead_data_dlli() local
711 enum drv_crypto_direction direct = areq_ctx->gen_ctx.op_type; in cc_prepare_aead_data_dlli()
712 unsigned int authsize = areq_ctx->req_authsize; in cc_prepare_aead_data_dlli()
716 areq_ctx->is_icv_fragmented = false; in cc_prepare_aead_data_dlli()
719 sg = areq_ctx->src_sgl; in cc_prepare_aead_data_dlli()
722 sg = areq_ctx->dst_sgl; in cc_prepare_aead_data_dlli()
726 areq_ctx->icv_dma_addr = sg_dma_address(sg) + offset; in cc_prepare_aead_data_dlli()
727 areq_ctx->icv_virt_addr = sg_virt(sg) + offset; in cc_prepare_aead_data_dlli()
736 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_prepare_aead_data_mlli() local
737 enum drv_crypto_direction direct = areq_ctx->gen_ctx.op_type; in cc_prepare_aead_data_mlli()
738 unsigned int authsize = areq_ctx->req_authsize; in cc_prepare_aead_data_mlli()
744 cc_add_sg_entry(dev, sg_data, areq_ctx->src.nents, in cc_prepare_aead_data_mlli()
745 areq_ctx->src_sgl, areq_ctx->cryptlen, in cc_prepare_aead_data_mlli()
746 areq_ctx->src_offset, is_last_table, in cc_prepare_aead_data_mlli()
747 &areq_ctx->src.mlli_nents); in cc_prepare_aead_data_mlli()
749 areq_ctx->is_icv_fragmented = in cc_prepare_aead_data_mlli()
750 cc_is_icv_frag(areq_ctx->src.nents, authsize, in cc_prepare_aead_data_mlli()
753 if (areq_ctx->is_icv_fragmented) { in cc_prepare_aead_data_mlli()
767 areq_ctx->icv_virt_addr = areq_ctx->backup_mac; in cc_prepare_aead_data_mlli()
769 areq_ctx->icv_virt_addr = areq_ctx->mac_buf; in cc_prepare_aead_data_mlli()
770 areq_ctx->icv_dma_addr = in cc_prepare_aead_data_mlli()
771 areq_ctx->mac_buf_dma_addr; in cc_prepare_aead_data_mlli()
774 sg = &areq_ctx->src_sgl[areq_ctx->src.nents - 1]; in cc_prepare_aead_data_mlli()
776 areq_ctx->icv_dma_addr = sg_dma_address(sg) + in cc_prepare_aead_data_mlli()
778 areq_ctx->icv_virt_addr = sg_virt(sg) + in cc_prepare_aead_data_mlli()
784 cc_add_sg_entry(dev, sg_data, areq_ctx->src.nents, in cc_prepare_aead_data_mlli()
785 areq_ctx->src_sgl, areq_ctx->cryptlen, in cc_prepare_aead_data_mlli()
786 areq_ctx->src_offset, is_last_table, in cc_prepare_aead_data_mlli()
787 &areq_ctx->src.mlli_nents); in cc_prepare_aead_data_mlli()
788 cc_add_sg_entry(dev, sg_data, areq_ctx->dst.nents, in cc_prepare_aead_data_mlli()
789 areq_ctx->dst_sgl, areq_ctx->cryptlen, in cc_prepare_aead_data_mlli()
790 areq_ctx->dst_offset, is_last_table, in cc_prepare_aead_data_mlli()
791 &areq_ctx->dst.mlli_nents); in cc_prepare_aead_data_mlli()
793 areq_ctx->is_icv_fragmented = in cc_prepare_aead_data_mlli()
794 cc_is_icv_frag(areq_ctx->src.nents, authsize, in cc_prepare_aead_data_mlli()
801 if (areq_ctx->is_icv_fragmented) { in cc_prepare_aead_data_mlli()
803 areq_ctx->icv_virt_addr = areq_ctx->backup_mac; in cc_prepare_aead_data_mlli()
806 sg = &areq_ctx->src_sgl[areq_ctx->src.nents - 1]; in cc_prepare_aead_data_mlli()
808 areq_ctx->icv_dma_addr = sg_dma_address(sg) + in cc_prepare_aead_data_mlli()
810 areq_ctx->icv_virt_addr = sg_virt(sg) + in cc_prepare_aead_data_mlli()
816 cc_add_sg_entry(dev, sg_data, areq_ctx->dst.nents, in cc_prepare_aead_data_mlli()
817 areq_ctx->dst_sgl, areq_ctx->cryptlen, in cc_prepare_aead_data_mlli()
818 areq_ctx->dst_offset, is_last_table, in cc_prepare_aead_data_mlli()
819 &areq_ctx->dst.mlli_nents); in cc_prepare_aead_data_mlli()
820 cc_add_sg_entry(dev, sg_data, areq_ctx->src.nents, in cc_prepare_aead_data_mlli()
821 areq_ctx->src_sgl, areq_ctx->cryptlen, in cc_prepare_aead_data_mlli()
822 areq_ctx->src_offset, is_last_table, in cc_prepare_aead_data_mlli()
823 &areq_ctx->src.mlli_nents); in cc_prepare_aead_data_mlli()
825 areq_ctx->is_icv_fragmented = in cc_prepare_aead_data_mlli()
826 cc_is_icv_frag(areq_ctx->dst.nents, authsize, in cc_prepare_aead_data_mlli()
829 if (!areq_ctx->is_icv_fragmented) { in cc_prepare_aead_data_mlli()
830 sg = &areq_ctx->dst_sgl[areq_ctx->dst.nents - 1]; in cc_prepare_aead_data_mlli()
832 areq_ctx->icv_dma_addr = sg_dma_address(sg) + in cc_prepare_aead_data_mlli()
834 areq_ctx->icv_virt_addr = sg_virt(sg) + in cc_prepare_aead_data_mlli()
837 areq_ctx->icv_dma_addr = areq_ctx->mac_buf_dma_addr; in cc_prepare_aead_data_mlli()
838 areq_ctx->icv_virt_addr = areq_ctx->mac_buf; in cc_prepare_aead_data_mlli()
848 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_aead_chain_data() local
850 enum drv_crypto_direction direct = areq_ctx->gen_ctx.op_type; in cc_aead_chain_data()
851 unsigned int authsize = areq_ctx->req_authsize; in cc_aead_chain_data()
857 unsigned int size_for_map = areq_ctx->assoclen + req->cryptlen; in cc_aead_chain_data()
860 bool is_gcm4543 = areq_ctx->is_gcm4543; in cc_aead_chain_data()
861 u32 size_to_skip = areq_ctx->assoclen; in cc_aead_chain_data()
872 areq_ctx->src_sgl = req->src; in cc_aead_chain_data()
873 areq_ctx->dst_sgl = req->dst; in cc_aead_chain_data()
882 sg_index = areq_ctx->src_sgl->length; in cc_aead_chain_data()
886 offset -= areq_ctx->src_sgl->length; in cc_aead_chain_data()
887 sgl = sg_next(areq_ctx->src_sgl); in cc_aead_chain_data()
890 areq_ctx->src_sgl = sgl; in cc_aead_chain_data()
891 sg_index += areq_ctx->src_sgl->length; in cc_aead_chain_data()
899 areq_ctx->src.nents = src_mapped_nents; in cc_aead_chain_data()
901 areq_ctx->src_offset = offset; in cc_aead_chain_data()
904 size_for_map = areq_ctx->assoclen + req->cryptlen; in cc_aead_chain_data()
911 &areq_ctx->dst.nents, in cc_aead_chain_data()
920 sg_index = areq_ctx->dst_sgl->length; in cc_aead_chain_data()
926 offset -= areq_ctx->dst_sgl->length; in cc_aead_chain_data()
927 sgl = sg_next(areq_ctx->dst_sgl); in cc_aead_chain_data()
930 areq_ctx->dst_sgl = sgl; in cc_aead_chain_data()
931 sg_index += areq_ctx->dst_sgl->length; in cc_aead_chain_data()
938 areq_ctx->dst.nents = dst_mapped_nents; in cc_aead_chain_data()
939 areq_ctx->dst_offset = offset; in cc_aead_chain_data()
943 areq_ctx->data_buff_type = CC_DMA_BUF_MLLI; in cc_aead_chain_data()
948 areq_ctx->data_buff_type = CC_DMA_BUF_DLLI; in cc_aead_chain_data()
960 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_update_aead_mlli_nents() local
963 if (areq_ctx->assoc_buff_type == CC_DMA_BUF_MLLI) { in cc_update_aead_mlli_nents()
964 areq_ctx->assoc.sram_addr = drvdata->mlli_sram_addr; in cc_update_aead_mlli_nents()
965 curr_mlli_size = areq_ctx->assoc.mlli_nents * in cc_update_aead_mlli_nents()
969 if (areq_ctx->data_buff_type == CC_DMA_BUF_MLLI) { in cc_update_aead_mlli_nents()
972 areq_ctx->dst.mlli_nents = areq_ctx->src.mlli_nents; in cc_update_aead_mlli_nents()
973 areq_ctx->src.sram_addr = drvdata->mlli_sram_addr + in cc_update_aead_mlli_nents()
975 areq_ctx->dst.sram_addr = areq_ctx->src.sram_addr; in cc_update_aead_mlli_nents()
976 if (!areq_ctx->is_single_pass) in cc_update_aead_mlli_nents()
977 areq_ctx->assoc.mlli_nents += in cc_update_aead_mlli_nents()
978 areq_ctx->src.mlli_nents; in cc_update_aead_mlli_nents()
980 if (areq_ctx->gen_ctx.op_type == in cc_update_aead_mlli_nents()
982 areq_ctx->src.sram_addr = in cc_update_aead_mlli_nents()
985 areq_ctx->dst.sram_addr = in cc_update_aead_mlli_nents()
986 areq_ctx->src.sram_addr + in cc_update_aead_mlli_nents()
987 areq_ctx->src.mlli_nents * in cc_update_aead_mlli_nents()
989 if (!areq_ctx->is_single_pass) in cc_update_aead_mlli_nents()
990 areq_ctx->assoc.mlli_nents += in cc_update_aead_mlli_nents()
991 areq_ctx->src.mlli_nents; in cc_update_aead_mlli_nents()
993 areq_ctx->dst.sram_addr = in cc_update_aead_mlli_nents()
996 areq_ctx->src.sram_addr = in cc_update_aead_mlli_nents()
997 areq_ctx->dst.sram_addr + in cc_update_aead_mlli_nents()
998 areq_ctx->dst.mlli_nents * in cc_update_aead_mlli_nents()
1000 if (!areq_ctx->is_single_pass) in cc_update_aead_mlli_nents()
1001 areq_ctx->assoc.mlli_nents += in cc_update_aead_mlli_nents()
1002 areq_ctx->dst.mlli_nents; in cc_update_aead_mlli_nents()
1010 struct aead_req_ctx *areq_ctx = aead_request_ctx(req); in cc_map_aead_request() local
1011 struct mlli_params *mlli_params = &areq_ctx->mlli_params; in cc_map_aead_request()
1014 unsigned int authsize = areq_ctx->req_authsize; in cc_map_aead_request()
1018 bool is_gcm4543 = areq_ctx->is_gcm4543; in cc_map_aead_request()
1032 areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_DECRYPT && in cc_map_aead_request()
1037 areq_ctx->cryptlen = (areq_ctx->gen_ctx.op_type == in cc_map_aead_request()
1042 dma_addr = dma_map_single(dev, areq_ctx->mac_buf, MAX_MAC_SIZE, in cc_map_aead_request()
1046 MAX_MAC_SIZE, areq_ctx->mac_buf); in cc_map_aead_request()
1050 areq_ctx->mac_buf_dma_addr = dma_addr; in cc_map_aead_request()
1052 if (areq_ctx->ccm_hdr_size != ccm_header_size_null) { in cc_map_aead_request()
1053 void *addr = areq_ctx->ccm_config + CCM_CTR_COUNT_0_OFFSET; in cc_map_aead_request()
1061 areq_ctx->ccm_iv0_dma_addr = 0; in cc_map_aead_request()
1065 areq_ctx->ccm_iv0_dma_addr = dma_addr; in cc_map_aead_request()
1067 rc = cc_set_aead_conf_buf(dev, areq_ctx, areq_ctx->ccm_config, in cc_map_aead_request()
1068 &sg_data, areq_ctx->assoclen); in cc_map_aead_request()
1073 if (areq_ctx->cipher_mode == DRV_CIPHER_GCTR) { in cc_map_aead_request()
1074 dma_addr = dma_map_single(dev, areq_ctx->hkey, AES_BLOCK_SIZE, in cc_map_aead_request()
1078 AES_BLOCK_SIZE, areq_ctx->hkey); in cc_map_aead_request()
1082 areq_ctx->hkey_dma_addr = dma_addr; in cc_map_aead_request()
1084 dma_addr = dma_map_single(dev, &areq_ctx->gcm_len_block, in cc_map_aead_request()
1088 AES_BLOCK_SIZE, &areq_ctx->gcm_len_block); in cc_map_aead_request()
1092 areq_ctx->gcm_block_len_dma_addr = dma_addr; in cc_map_aead_request()
1094 dma_addr = dma_map_single(dev, areq_ctx->gcm_iv_inc1, in cc_map_aead_request()
1099 AES_BLOCK_SIZE, (areq_ctx->gcm_iv_inc1)); in cc_map_aead_request()
1100 areq_ctx->gcm_iv_inc1_dma_addr = 0; in cc_map_aead_request()
1104 areq_ctx->gcm_iv_inc1_dma_addr = dma_addr; in cc_map_aead_request()
1106 dma_addr = dma_map_single(dev, areq_ctx->gcm_iv_inc2, in cc_map_aead_request()
1111 AES_BLOCK_SIZE, (areq_ctx->gcm_iv_inc2)); in cc_map_aead_request()
1112 areq_ctx->gcm_iv_inc2_dma_addr = 0; in cc_map_aead_request()
1116 areq_ctx->gcm_iv_inc2_dma_addr = dma_addr; in cc_map_aead_request()
1119 size_to_map = req->cryptlen + areq_ctx->assoclen; in cc_map_aead_request()
1120 if (areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_ENCRYPT) in cc_map_aead_request()
1126 &areq_ctx->src.nents, in cc_map_aead_request()
1133 if (areq_ctx->is_single_pass) { in cc_map_aead_request()
1184 if (areq_ctx->assoc_buff_type == CC_DMA_BUF_MLLI || in cc_map_aead_request()
1185 areq_ctx->data_buff_type == CC_DMA_BUF_MLLI) { in cc_map_aead_request()
1193 areq_ctx->assoc.mlli_nents); in cc_map_aead_request()
1194 dev_dbg(dev, "src params mn %d\n", areq_ctx->src.mlli_nents); in cc_map_aead_request()
1195 dev_dbg(dev, "dst params mn %d\n", areq_ctx->dst.mlli_nents); in cc_map_aead_request()
1208 struct ahash_req_ctx *areq_ctx = (struct ahash_req_ctx *)ctx; in cc_map_hash_request_final() local
1210 u8 *curr_buff = cc_hash_buf(areq_ctx); in cc_map_hash_request_final()
1211 u32 *curr_buff_cnt = cc_hash_buf_cnt(areq_ctx); in cc_map_hash_request_final()
1212 struct mlli_params *mlli_params = &areq_ctx->mlli_params; in cc_map_hash_request_final()
1220 curr_buff, *curr_buff_cnt, nbytes, src, areq_ctx->buff_index); in cc_map_hash_request_final()
1222 areq_ctx->data_dma_buf_type = CC_DMA_BUF_NULL; in cc_map_hash_request_final()
1225 areq_ctx->in_nents = 0; in cc_map_hash_request_final()
1235 rc = cc_set_hash_buf(dev, areq_ctx, curr_buff, *curr_buff_cnt, in cc_map_hash_request_final()
1243 &areq_ctx->in_nents, LLI_MAX_NUM_OF_DATA_ENTRIES, in cc_map_hash_request_final()
1248 areq_ctx->data_dma_buf_type == CC_DMA_BUF_NULL) { in cc_map_hash_request_final()
1249 memcpy(areq_ctx->buff_sg, src, in cc_map_hash_request_final()
1251 areq_ctx->buff_sg->length = nbytes; in cc_map_hash_request_final()
1252 areq_ctx->curr_sg = areq_ctx->buff_sg; in cc_map_hash_request_final()
1253 areq_ctx->data_dma_buf_type = CC_DMA_BUF_DLLI; in cc_map_hash_request_final()
1255 areq_ctx->data_dma_buf_type = CC_DMA_BUF_MLLI; in cc_map_hash_request_final()
1260 if (areq_ctx->data_dma_buf_type == CC_DMA_BUF_MLLI) { in cc_map_hash_request_final()
1263 cc_add_sg_entry(dev, &sg_data, areq_ctx->in_nents, src, nbytes, in cc_map_hash_request_final()
1264 0, true, &areq_ctx->mlli_nents); in cc_map_hash_request_final()
1270 areq_ctx->buff_index = (areq_ctx->buff_index ^ 1); in cc_map_hash_request_final()
1272 cc_dma_buf_type(areq_ctx->data_dma_buf_type)); in cc_map_hash_request_final()
1276 dma_unmap_sg(dev, src, areq_ctx->in_nents, DMA_TO_DEVICE); in cc_map_hash_request_final()
1280 dma_unmap_sg(dev, areq_ctx->buff_sg, 1, DMA_TO_DEVICE); in cc_map_hash_request_final()
1289 struct ahash_req_ctx *areq_ctx = (struct ahash_req_ctx *)ctx; in cc_map_hash_request_update() local
1291 u8 *curr_buff = cc_hash_buf(areq_ctx); in cc_map_hash_request_update()
1292 u32 *curr_buff_cnt = cc_hash_buf_cnt(areq_ctx); in cc_map_hash_request_update()
1293 u8 *next_buff = cc_next_buf(areq_ctx); in cc_map_hash_request_update()
1294 u32 *next_buff_cnt = cc_next_buf_cnt(areq_ctx); in cc_map_hash_request_update()
1295 struct mlli_params *mlli_params = &areq_ctx->mlli_params; in cc_map_hash_request_update()
1306 curr_buff, *curr_buff_cnt, nbytes, src, areq_ctx->buff_index); in cc_map_hash_request_update()
1308 areq_ctx->data_dma_buf_type = CC_DMA_BUF_NULL; in cc_map_hash_request_update()
1310 areq_ctx->curr_sg = NULL; in cc_map_hash_request_update()
1312 areq_ctx->in_nents = 0; in cc_map_hash_request_update()
1317 areq_ctx->in_nents = sg_nents_for_len(src, nbytes); in cc_map_hash_request_update()
1318 sg_copy_to_buffer(src, areq_ctx->in_nents, in cc_map_hash_request_update()
1345 rc = cc_set_hash_buf(dev, areq_ctx, curr_buff, *curr_buff_cnt, in cc_map_hash_request_update()
1355 DMA_TO_DEVICE, &areq_ctx->in_nents, in cc_map_hash_request_update()
1361 areq_ctx->data_dma_buf_type == CC_DMA_BUF_NULL) { in cc_map_hash_request_update()
1363 memcpy(areq_ctx->buff_sg, src, in cc_map_hash_request_update()
1365 areq_ctx->buff_sg->length = update_data_len; in cc_map_hash_request_update()
1366 areq_ctx->data_dma_buf_type = CC_DMA_BUF_DLLI; in cc_map_hash_request_update()
1367 areq_ctx->curr_sg = areq_ctx->buff_sg; in cc_map_hash_request_update()
1369 areq_ctx->data_dma_buf_type = CC_DMA_BUF_MLLI; in cc_map_hash_request_update()
1373 if (areq_ctx->data_dma_buf_type == CC_DMA_BUF_MLLI) { in cc_map_hash_request_update()
1376 cc_add_sg_entry(dev, &sg_data, areq_ctx->in_nents, src, in cc_map_hash_request_update()
1378 &areq_ctx->mlli_nents); in cc_map_hash_request_update()
1383 areq_ctx->buff_index = (areq_ctx->buff_index ^ swap_index); in cc_map_hash_request_update()
1388 dma_unmap_sg(dev, src, areq_ctx->in_nents, DMA_TO_DEVICE); in cc_map_hash_request_update()
1392 dma_unmap_sg(dev, areq_ctx->buff_sg, 1, DMA_TO_DEVICE); in cc_map_hash_request_update()
1400 struct ahash_req_ctx *areq_ctx = (struct ahash_req_ctx *)ctx; in cc_unmap_hash_request() local
1401 u32 *prev_len = cc_next_buf_cnt(areq_ctx); in cc_unmap_hash_request()
1406 if (areq_ctx->mlli_params.curr_pool) { in cc_unmap_hash_request()
1408 &areq_ctx->mlli_params.mlli_dma_addr, in cc_unmap_hash_request()
1409 areq_ctx->mlli_params.mlli_virt_addr); in cc_unmap_hash_request()
1410 dma_pool_free(areq_ctx->mlli_params.curr_pool, in cc_unmap_hash_request()
1411 areq_ctx->mlli_params.mlli_virt_addr, in cc_unmap_hash_request()
1412 areq_ctx->mlli_params.mlli_dma_addr); in cc_unmap_hash_request()
1415 if (src && areq_ctx->in_nents) { in cc_unmap_hash_request()
1419 areq_ctx->in_nents, DMA_TO_DEVICE); in cc_unmap_hash_request()
1424 sg_virt(areq_ctx->buff_sg), in cc_unmap_hash_request()
1425 &sg_dma_address(areq_ctx->buff_sg), in cc_unmap_hash_request()
1426 sg_dma_len(areq_ctx->buff_sg)); in cc_unmap_hash_request()
1427 dma_unmap_sg(dev, areq_ctx->buff_sg, 1, DMA_TO_DEVICE); in cc_unmap_hash_request()
1434 areq_ctx->buff_index ^= 1; in cc_unmap_hash_request()