Lines Matching refs:src

342 static void ccp_prepare_data(struct ccp_data *src, struct ccp_data *dst,
353 sg_src_len = sg_dma_len(src->sg_wa.dma_sg) - src->sg_wa.sg_used;
354 sg_src_len = min_t(u64, src->sg_wa.bytes_left, sg_src_len);
358 sg_dst_len = min_t(u64, src->sg_wa.bytes_left, sg_dst_len);
377 int cp_len = ccp_fill_queue_buf(src);
380 op->src.u.dma.address = src->dm_wa.dma.address;
381 op->src.u.dma.offset = 0;
382 op->src.u.dma.length = (blocksize_op) ? block_size : cp_len;
387 op->src.u.dma.address = sg_dma_address(src->sg_wa.dma_sg);
388 op->src.u.dma.offset = src->sg_wa.sg_used;
389 op->src.u.dma.length = op_len & ~(block_size - 1);
391 ccp_update_sg_workarea(&src->sg_wa, op->src.u.dma.length);
403 op->dst.u.dma.length = op->src.u.dma.length;
410 op->dst.u.dma.length = op->src.u.dma.length;
415 static void ccp_process_data(struct ccp_data *src, struct ccp_data *dst,
443 op.src.type = CCP_MEMTYPE_SB;
444 op.src.u.sb = sb;
449 op.src.type = CCP_MEMTYPE_SYSTEM;
450 op.src.u.dma.address = wa->dma.address;
451 op.src.u.dma.length = wa->length;
480 struct ccp_data src;
496 if (!aes->key || !aes->iv || !aes->src)
565 ret = ccp_init_data(&src, cmd_q, aes->src, aes->src_len,
570 while (src.sg_wa.bytes_left) {
571 ccp_prepare_data(&src, NULL, &op, AES_BLOCK_SIZE, true);
572 if (aes->cmac_final && !src.sg_wa.bytes_left) {
602 ccp_process_data(&src, NULL, &op);
620 ccp_free_data(&src, cmd_q);
636 struct ccp_data src, dst;
684 p_aad = aes->src;
685 p_inp = scatterwalk_ffwd(sg_inp, aes->src, aes->aad_len);
779 ret = ccp_init_data(&src, cmd_q, p_inp, ilen,
787 dst = src;
798 while (src.sg_wa.bytes_left) {
799 ccp_prepare_data(&src, &dst, &op, AES_BLOCK_SIZE, true);
800 if (!src.sg_wa.bytes_left) {
815 ccp_process_data(&src, &dst, &op);
859 op.src.type = CCP_MEMTYPE_SYSTEM;
860 op.src.u.dma.address = final_wa.dma.address;
861 op.src.u.dma.length = AES_BLOCK_SIZE;
900 ccp_free_data(&src, cmd_q);
920 struct ccp_data src, dst;
936 if (!aes->key || !aes->src || !aes->dst)
1017 * and copy the src workarea to the dst workarea.
1019 if (sg_virt(aes->src) == sg_virt(aes->dst))
1022 ret = ccp_init_data(&src, cmd_q, aes->src, aes->src_len,
1029 dst = src;
1038 while (src.sg_wa.bytes_left) {
1039 ccp_prepare_data(&src, &dst, &op, AES_BLOCK_SIZE, true);
1040 if (!src.sg_wa.bytes_left) {
1057 ccp_process_data(&src, &dst, &op);
1081 ccp_free_data(&src, cmd_q);
1097 struct ccp_data src, dst;
1139 if (!xts->key || !xts->iv || !xts->src || !xts->dst)
1227 * and copy the src workarea to the dst workarea.
1229 if (sg_virt(xts->src) == sg_virt(xts->dst))
1232 ret = ccp_init_data(&src, cmd_q, xts->src, xts->src_len,
1239 dst = src;
1248 while (src.sg_wa.bytes_left) {
1249 ccp_prepare_data(&src, &dst, &op, unit_size, true);
1250 if (!src.sg_wa.bytes_left)
1259 ccp_process_data(&src, &dst, &op);
1281 ccp_free_data(&src, cmd_q);
1298 struct ccp_data src, dst;
1320 if (!des3->key || !des3->src || !des3->dst)
1416 * and copy the src workarea to the dst workarea.
1418 if (sg_virt(des3->src) == sg_virt(des3->dst))
1421 ret = ccp_init_data(&src, cmd_q, des3->src, des3->src_len,
1428 dst = src;
1437 while (src.sg_wa.bytes_left) {
1438 ccp_prepare_data(&src, &dst, &op, DES3_EDE_BLOCK_SIZE, true);
1439 if (!src.sg_wa.bytes_left) {
1455 ccp_process_data(&src, &dst, &op);
1476 ccp_free_data(&src, cmd_q);
1493 struct ccp_data src;
1638 /* For zero-length plaintext the src pointer is ignored;
1641 if (sha->src_len && !sha->src)
1693 if (sha->src) {
1695 ret = ccp_init_data(&src, cmd_q, sha->src, sha->src_len,
1700 while (src.sg_wa.bytes_left) {
1701 ccp_prepare_data(&src, NULL, &op, block_size, false);
1702 if (sha->final && !src.sg_wa.bytes_left)
1711 ccp_process_data(&src, NULL, &op);
1809 hmac_cmd.u.sha.src = &sg;
1825 if (sha->src)
1826 ccp_free_data(&src, cmd_q);
1838 struct ccp_dm_workarea exp, src, dst;
1847 if (!rsa->exp || !rsa->mod || !rsa->src || !rsa->dst)
1915 ret = ccp_init_dm_workarea(&src, cmd_q, i_len, DMA_TO_DEVICE);
1919 ret = ccp_reverse_set_dm_area(&src, 0, rsa->mod, 0, rsa->mod_len);
1922 ret = ccp_reverse_set_dm_area(&src, o_len, rsa->src, 0, rsa->src_len);
1932 op.src.u.dma.address = src.dma.address;
1933 op.src.u.dma.offset = 0;
1934 op.src.u.dma.length = i_len;
1954 ccp_dm_free(&src);
1971 struct ccp_data src, dst;
1980 if (!pt->src || !pt->dst)
2020 * and copy the src workarea to the dst workarea.
2022 if (sg_virt(pt->src) == sg_virt(pt->dst))
2025 ret = ccp_init_data(&src, cmd_q, pt->src, pt->src_len,
2032 dst = src;
2048 for (i = 1; i <= src.sg_wa.dma_count; i++) {
2050 (sg_dma_len(dst.sg_wa.sg) < sg_dma_len(src.sg_wa.sg))) {
2055 if (i == src.sg_wa.dma_count) {
2060 op.src.type = CCP_MEMTYPE_SYSTEM;
2061 op.src.u.dma.address = sg_dma_address(src.sg_wa.sg);
2062 op.src.u.dma.offset = 0;
2063 op.src.u.dma.length = sg_dma_len(src.sg_wa.sg);
2068 op.dst.u.dma.length = op.src.u.dma.length;
2076 dst.sg_wa.sg_used += sg_dma_len(src.sg_wa.sg);
2081 src.sg_wa.sg = sg_next(src.sg_wa.sg);
2089 ccp_free_data(&src, cmd_q);
2146 op.src.type = CCP_MEMTYPE_SYSTEM;
2147 op.src.u.dma.address = pt->src_dma;
2148 op.src.u.dma.offset = 0;
2149 op.src.u.dma.length = pt->src_len;
2166 struct ccp_dm_workarea src, dst;
2193 ret = ccp_init_dm_workarea(&src, cmd_q, CCP_ECC_SRC_BUF_SIZE,
2201 save = src.address;
2204 ret = ccp_reverse_set_dm_area(&src, 0, ecc->mod, 0, ecc->mod_len);
2207 src.address += CCP_ECC_OPERAND_SIZE;
2210 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.mm.operand_1, 0,
2214 src.address += CCP_ECC_OPERAND_SIZE;
2218 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.mm.operand_2, 0,
2222 src.address += CCP_ECC_OPERAND_SIZE;
2226 src.address = save;
2235 op.src.u.dma.address = src.dma.address;
2236 op.src.u.dma.offset = 0;
2237 op.src.u.dma.length = src.length;
2265 ccp_dm_free(&src);
2273 struct ccp_dm_workarea src, dst;
2316 ret = ccp_init_dm_workarea(&src, cmd_q, CCP_ECC_SRC_BUF_SIZE,
2324 save = src.address;
2327 ret = ccp_reverse_set_dm_area(&src, 0, ecc->mod, 0, ecc->mod_len);
2330 src.address += CCP_ECC_OPERAND_SIZE;
2333 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.pm.point_1.x, 0,
2337 src.address += CCP_ECC_OPERAND_SIZE;
2338 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.pm.point_1.y, 0,
2342 src.address += CCP_ECC_OPERAND_SIZE;
2345 *src.address = 0x01;
2346 src.address += CCP_ECC_OPERAND_SIZE;
2350 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.pm.point_2.x, 0,
2354 src.address += CCP_ECC_OPERAND_SIZE;
2355 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.pm.point_2.y, 0,
2359 src.address += CCP_ECC_OPERAND_SIZE;
2362 *src.address = 0x01;
2363 src.address += CCP_ECC_OPERAND_SIZE;
2366 ret = ccp_reverse_set_dm_area(&src, 0, ecc->u.pm.domain_a, 0,
2370 src.address += CCP_ECC_OPERAND_SIZE;
2374 ret = ccp_reverse_set_dm_area(&src, 0,
2379 src.address += CCP_ECC_OPERAND_SIZE;
2384 src.address = save;
2393 op.src.u.dma.address = src.dma.address;
2394 op.src.u.dma.offset = 0;
2395 op.src.u.dma.length = src.length;
2435 ccp_dm_free(&src);