Lines Matching defs:cmd_q

153 				struct ccp_cmd_queue *cmd_q,
162 wa->dev = cmd_q->ccp->dev;
166 wa->dma_pool = cmd_q->dma_pool;
265 static void ccp_free_data(struct ccp_data *data, struct ccp_cmd_queue *cmd_q)
271 static int ccp_init_data(struct ccp_data *data, struct ccp_cmd_queue *cmd_q,
280 ret = ccp_init_sg_workarea(&data->sg_wa, cmd_q->ccp->dev, sg, sg_len,
285 ret = ccp_init_dm_workarea(&data->dm_wa, cmd_q, dm_len, dir);
292 ccp_free_data(data, cmd_q);
429 static int ccp_copy_to_from_sb(struct ccp_cmd_queue *cmd_q,
437 op.cmd_q = cmd_q;
458 return cmd_q->ccp->vdata->perform->passthru(&op);
461 static int ccp_copy_to_sb(struct ccp_cmd_queue *cmd_q,
465 return ccp_copy_to_from_sb(cmd_q, wa, jobid, sb, byte_swap, false);
468 static int ccp_copy_from_sb(struct ccp_cmd_queue *cmd_q,
472 return ccp_copy_to_from_sb(cmd_q, wa, jobid, sb, byte_swap, true);
476 ccp_run_aes_cmac_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
512 op.cmd_q = cmd_q;
513 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
514 op.sb_key = cmd_q->sb_key;
515 op.sb_ctx = cmd_q->sb_ctx;
526 ret = ccp_init_dm_workarea(&key, cmd_q,
536 ret = ccp_copy_to_sb(cmd_q, &key, op.jobid, op.sb_key,
539 cmd->engine_error = cmd_q->cmd_error;
547 ret = ccp_init_dm_workarea(&ctx, cmd_q,
557 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
560 cmd->engine_error = cmd_q->cmd_error;
565 ret = ccp_init_data(&src, cmd_q, aes->src, aes->src_len,
576 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid,
580 cmd->engine_error = cmd_q->cmd_error;
588 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
591 cmd->engine_error = cmd_q->cmd_error;
596 ret = cmd_q->ccp->vdata->perform->aes(&op);
598 cmd->engine_error = cmd_q->cmd_error;
608 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
611 cmd->engine_error = cmd_q->cmd_error;
620 ccp_free_data(&src, cmd_q);
632 ccp_run_aes_gcm_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
696 jobid = CCP_NEW_JOBID(cmd_q->ccp);
699 op.cmd_q = cmd_q;
701 op.sb_key = cmd_q->sb_key; /* Pre-allocated */
702 op.sb_ctx = cmd_q->sb_ctx; /* Pre-allocated */
707 ret = ccp_init_dm_workarea(&key, cmd_q,
717 ret = ccp_copy_to_sb(cmd_q, &key, op.jobid, op.sb_key,
720 cmd->engine_error = cmd_q->cmd_error;
728 ret = ccp_init_dm_workarea(&ctx, cmd_q,
739 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
742 cmd->engine_error = cmd_q->cmd_error;
749 ret = ccp_init_data(&aad, cmd_q, p_aad, aes->aad_len,
761 ret = cmd_q->ccp->vdata->perform->aes(&op);
763 cmd->engine_error = cmd_q->cmd_error;
779 ret = ccp_init_data(&src, cmd_q, p_inp, ilen,
789 ret = ccp_init_data(&dst, cmd_q, p_outp, ilen,
809 ret = cmd_q->ccp->vdata->perform->aes(&op);
811 cmd->engine_error = cmd_q->cmd_error;
821 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
824 cmd->engine_error = cmd_q->cmd_error;
832 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
835 cmd->engine_error = cmd_q->cmd_error;
842 ret = ccp_init_dm_workarea(&final_wa, cmd_q, AES_BLOCK_SIZE,
851 op.cmd_q = cmd_q;
853 op.sb_key = cmd_q->sb_key; /* Pre-allocated */
854 op.sb_ctx = cmd_q->sb_ctx; /* Pre-allocated */
867 ret = cmd_q->ccp->vdata->perform->aes(&op);
876 ret = ccp_init_dm_workarea(&tag, cmd_q, authsize,
896 ccp_free_data(&dst, cmd_q);
900 ccp_free_data(&src, cmd_q);
904 ccp_free_data(&aad, cmd_q);
916 ccp_run_aes_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
952 op.cmd_q = cmd_q;
953 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
954 op.sb_key = cmd_q->sb_key;
955 op.sb_ctx = cmd_q->sb_ctx;
966 ret = ccp_init_dm_workarea(&key, cmd_q,
976 ret = ccp_copy_to_sb(cmd_q, &key, op.jobid, op.sb_key,
979 cmd->engine_error = cmd_q->cmd_error;
987 ret = ccp_init_dm_workarea(&ctx, cmd_q,
999 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1002 cmd->engine_error = cmd_q->cmd_error;
1022 ret = ccp_init_data(&src, cmd_q, aes->src, aes->src_len,
1031 ret = ccp_init_data(&dst, cmd_q, aes->dst, aes->src_len,
1051 ret = cmd_q->ccp->vdata->perform->aes(&op);
1053 cmd->engine_error = cmd_q->cmd_error;
1064 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1067 cmd->engine_error = cmd_q->cmd_error;
1078 ccp_free_data(&dst, cmd_q);
1081 ccp_free_data(&src, cmd_q);
1093 ccp_run_xts_aes_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
1147 op.cmd_q = cmd_q;
1148 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
1149 op.sb_key = cmd_q->sb_key;
1150 op.sb_ctx = cmd_q->sb_ctx;
1160 if (cmd_q->ccp->vdata->version == CCP_VERSION(3, 0))
1164 ret = ccp_init_dm_workarea(&key, cmd_q,
1170 if (cmd_q->ccp->vdata->version == CCP_VERSION(3, 0)) {
1198 ret = ccp_copy_to_sb(cmd_q, &key, op.jobid, op.sb_key,
1201 cmd->engine_error = cmd_q->cmd_error;
1209 ret = ccp_init_dm_workarea(&ctx, cmd_q,
1218 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1221 cmd->engine_error = cmd_q->cmd_error;
1232 ret = ccp_init_data(&src, cmd_q, xts->src, xts->src_len,
1241 ret = ccp_init_data(&dst, cmd_q, xts->dst, xts->src_len,
1253 ret = cmd_q->ccp->vdata->perform->xts_aes(&op);
1255 cmd->engine_error = cmd_q->cmd_error;
1265 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1268 cmd->engine_error = cmd_q->cmd_error;
1278 ccp_free_data(&dst, cmd_q);
1281 ccp_free_data(&src, cmd_q);
1293 ccp_run_des3_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
1306 if (cmd_q->ccp->vdata->version < CCP_VERSION(5, 0))
1309 if (!cmd_q->ccp->vdata->perform->des3)
1335 op.cmd_q = cmd_q;
1336 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
1337 op.sb_key = cmd_q->sb_key;
1349 ret = ccp_init_dm_workarea(&key, cmd_q,
1377 ret = ccp_copy_to_sb(cmd_q, &key, op.jobid, op.sb_key,
1380 cmd->engine_error = cmd_q->cmd_error;
1390 op.sb_ctx = cmd_q->sb_ctx;
1392 ret = ccp_init_dm_workarea(&ctx, cmd_q,
1405 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1408 cmd->engine_error = cmd_q->cmd_error;
1421 ret = ccp_init_data(&src, cmd_q, des3->src, des3->src_len,
1430 ret = ccp_init_data(&dst, cmd_q, des3->dst, des3->src_len,
1449 ret = cmd_q->ccp->vdata->perform->des3(&op);
1451 cmd->engine_error = cmd_q->cmd_error;
1460 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1463 cmd->engine_error = cmd_q->cmd_error;
1473 ccp_free_data(&dst, cmd_q);
1476 ccp_free_data(&src, cmd_q);
1489 ccp_run_sha_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
1520 if (cmd_q->ccp->vdata->version < CCP_VERSION(4, 0)
1526 if (cmd_q->ccp->vdata->version < CCP_VERSION(4, 0)
1542 if (cmd_q->ccp->vdata->version == CCP_VERSION(3, 0)) {
1595 if (cmd_q->ccp->vdata->version != CCP_VERSION(3, 0))
1606 if (cmd_q->ccp->vdata->version != CCP_VERSION(3, 0))
1645 op.cmd_q = cmd_q;
1646 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
1647 op.sb_ctx = cmd_q->sb_ctx; /* Pre-allocated */
1656 ret = ccp_init_dm_workarea(&ctx, cmd_q, sb_count * CCP_SB_BYTES,
1686 ret = ccp_copy_to_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1689 cmd->engine_error = cmd_q->cmd_error;
1695 ret = ccp_init_data(&src, cmd_q, sha->src, sha->src_len,
1705 ret = cmd_q->ccp->vdata->perform->sha(&op);
1707 cmd->engine_error = cmd_q->cmd_error;
1715 ret = cmd_q->ccp->vdata->perform->sha(&op);
1717 cmd->engine_error = cmd_q->cmd_error;
1725 ret = ccp_copy_from_sb(cmd_q, &ctx, op.jobid, op.sb_ctx,
1728 cmd->engine_error = cmd_q->cmd_error;
1817 ret = ccp_run_sha_cmd(cmd_q, &hmac_cmd);
1826 ccp_free_data(&src, cmd_q);
1835 ccp_run_rsa_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
1844 if (rsa->key_size > cmd_q->ccp->vdata->rsamax)
1851 op.cmd_q = cmd_q;
1852 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
1866 if (cmd_q->ccp->vdata->version < CCP_VERSION(5, 0)) {
1871 op.sb_key = cmd_q->ccp->vdata->perform->sballoc(cmd_q,
1880 op.sb_key = cmd_q->sb_key;
1886 ret = ccp_init_dm_workarea(&exp, cmd_q, o_len, DMA_TO_DEVICE);
1894 if (cmd_q->ccp->vdata->version < CCP_VERSION(5, 0)) {
1899 ret = ccp_copy_to_sb(cmd_q, &exp, op.jobid, op.sb_key,
1902 cmd->engine_error = cmd_q->cmd_error;
1915 ret = ccp_init_dm_workarea(&src, cmd_q, i_len, DMA_TO_DEVICE);
1927 ret = ccp_init_dm_workarea(&dst, cmd_q, o_len, DMA_FROM_DEVICE);
1942 ret = cmd_q->ccp->vdata->perform->rsa(&op);
1944 cmd->engine_error = cmd_q->cmd_error;
1961 cmd_q->ccp->vdata->perform->sbfree(cmd_q, op.sb_key, sb_count);
1967 ccp_run_passthru_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
1993 op.cmd_q = cmd_q;
1994 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
1998 op.sb_key = cmd_q->sb_key;
2000 ret = ccp_init_dm_workarea(&mask, cmd_q,
2010 ret = ccp_copy_to_sb(cmd_q, &mask, op.jobid, op.sb_key,
2013 cmd->engine_error = cmd_q->cmd_error;
2025 ret = ccp_init_data(&src, cmd_q, pt->src, pt->src_len,
2034 ret = ccp_init_data(&dst, cmd_q, pt->dst, pt->src_len,
2070 ret = cmd_q->ccp->vdata->perform->passthru(&op);
2072 cmd->engine_error = cmd_q->cmd_error;
2086 ccp_free_data(&dst, cmd_q);
2089 ccp_free_data(&src, cmd_q);
2099 ccp_run_passthru_nomap_cmd(struct ccp_cmd_queue *cmd_q,
2123 op.cmd_q = cmd_q;
2124 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
2128 op.sb_key = cmd_q->sb_key;
2134 ret = ccp_copy_to_sb(cmd_q, &mask, op.jobid, op.sb_key,
2137 cmd->engine_error = cmd_q->cmd_error;
2156 ret = cmd_q->ccp->vdata->perform->passthru(&op);
2158 cmd->engine_error = cmd_q->cmd_error;
2163 static int ccp_run_ecc_mm_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
2185 op.cmd_q = cmd_q;
2186 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
2193 ret = ccp_init_dm_workarea(&src, cmd_q, CCP_ECC_SRC_BUF_SIZE,
2229 ret = ccp_init_dm_workarea(&dst, cmd_q, CCP_ECC_DST_BUF_SIZE,
2244 ret = cmd_q->ccp->vdata->perform->ecc(&op);
2246 cmd->engine_error = cmd_q->cmd_error;
2270 static int ccp_run_ecc_pm_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
2308 op.cmd_q = cmd_q;
2309 op.jobid = CCP_NEW_JOBID(cmd_q->ccp);
2316 ret = ccp_init_dm_workarea(&src, cmd_q, CCP_ECC_SRC_BUF_SIZE,
2387 ret = ccp_init_dm_workarea(&dst, cmd_q, CCP_ECC_DST_BUF_SIZE,
2402 ret = cmd_q->ccp->vdata->perform->ecc(&op);
2404 cmd->engine_error = cmd_q->cmd_error;
2440 ccp_run_ecc_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
2454 return ccp_run_ecc_mm_cmd(cmd_q, cmd);
2459 return ccp_run_ecc_pm_cmd(cmd_q, cmd);
2466 int ccp_run_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
2471 cmd_q->cmd_error = 0;
2472 cmd_q->int_rcvd = 0;
2473 cmd_q->free_slots = cmd_q->ccp->vdata->perform->get_free_slots(cmd_q);
2479 ret = ccp_run_aes_cmac_cmd(cmd_q, cmd);
2482 ret = ccp_run_aes_gcm_cmd(cmd_q, cmd);
2485 ret = ccp_run_aes_cmd(cmd_q, cmd);
2490 ret = ccp_run_xts_aes_cmd(cmd_q, cmd);
2493 ret = ccp_run_des3_cmd(cmd_q, cmd);
2496 ret = ccp_run_sha_cmd(cmd_q, cmd);
2499 ret = ccp_run_rsa_cmd(cmd_q, cmd);
2503 ret = ccp_run_passthru_nomap_cmd(cmd_q, cmd);
2505 ret = ccp_run_passthru_cmd(cmd_q, cmd);
2508 ret = ccp_run_ecc_cmd(cmd_q, cmd);