Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

crypto: octeontx2 - get engine group number for asymmetric engine

Cryptographic Accelerator Unit (CPT) support different engine groups, one
for asymmetric algorithms (only AE engines in this group), one for the
most common symmetric algorithms (all SE and all IE engines in this group),
and one for other symmetric algorithms (only SE engines in this group).

For symmetric engine (SE), we obtain the group number using
"MBOX_MSG_GET_ENG_GRP_NUM" mailbox. Let's follow a similar approach to
determine the group number for asymmetric engine (AE).

Signed-off-by: Amit Singh Tomar <amitsinght@marvell.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Amit Singh Tomar and committed by
Herbert Xu
1b9209d5 fbfe4f47

+21 -1
+1
drivers/crypto/marvell/octeontx2/otx2_cptlf.h
··· 125 125 u8 are_lfs_attached; /* Whether CPT LFs are attached */ 126 126 u8 lfs_num; /* Number of CPT LFs */ 127 127 u8 kcrypto_se_eng_grp_num; /* Crypto symmetric engine group number */ 128 + u8 kcrypto_ae_eng_grp_num; /* Crypto asymmetric engine group number */ 128 129 u8 kvf_limits; /* Kernel crypto limits */ 129 130 atomic_t state; /* LF's state. started/reset */ 130 131 int blkaddr; /* CPT blkaddr: BLKADDR_CPT0/BLKADDR_CPT1 */
+16 -1
drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
··· 276 276 "Symmetric Engine group for crypto not available\n"); 277 277 return -ENOENT; 278 278 } 279 - eng_grp_msk = 1 << cptvf->lfs.kcrypto_se_eng_grp_num; 279 + 280 + /* Get engine group number for asymmetric crypto */ 281 + cptvf->lfs.kcrypto_ae_eng_grp_num = OTX2_CPT_INVALID_CRYPTO_ENG_GRP; 282 + ret = otx2_cptvf_send_eng_grp_num_msg(cptvf, OTX2_CPT_AE_TYPES); 283 + if (ret) 284 + return ret; 285 + 286 + if (cptvf->lfs.kcrypto_ae_eng_grp_num == 287 + OTX2_CPT_INVALID_CRYPTO_ENG_GRP) { 288 + dev_err(dev, 289 + "Asymmetric Engine group for crypto not available\n"); 290 + return -ENOENT; 291 + } 292 + 293 + eng_grp_msk = BIT(cptvf->lfs.kcrypto_se_eng_grp_num) | 294 + BIT(cptvf->lfs.kcrypto_ae_eng_grp_num); 280 295 281 296 ret = otx2_cptvf_send_kvf_limits_msg(cptvf); 282 297 if (ret)
+2
drivers/crypto/marvell/octeontx2/otx2_cptvf_mbox.c
··· 126 126 grp_num = rsp_grp->eng_grp_num; 127 127 if (rsp_grp->eng_type == OTX2_CPT_SE_TYPES) 128 128 cptvf->lfs.kcrypto_se_eng_grp_num = grp_num; 129 + else if (rsp_grp->eng_type == OTX2_CPT_AE_TYPES) 130 + cptvf->lfs.kcrypto_ae_eng_grp_num = grp_num; 129 131 break; 130 132 case MBOX_MSG_GET_KVF_LIMITS: 131 133 rsp_limits = (struct otx2_cpt_kvf_limits_rsp *) msg;
+2
drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c
··· 399 399 switch (eng_type) { 400 400 case OTX2_CPT_SE_TYPES: 401 401 return cptvf->lfs.kcrypto_se_eng_grp_num; 402 + case OTX2_CPT_AE_TYPES: 403 + return cptvf->lfs.kcrypto_ae_eng_grp_num; 402 404 default: 403 405 dev_err(&cptvf->pdev->dev, "Unsupported engine type"); 404 406 break;