]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
octeontx2-af: update cpt lf alloc mailbox
authorSrujana Challa <schalla@marvell.com>
Wed, 18 Jan 2023 12:03:53 +0000 (17:33 +0530)
committerJakub Kicinski <kuba@kernel.org>
Fri, 20 Jan 2023 16:37:10 +0000 (08:37 -0800)
The CN10K CPT coprocessor contains a context processor
to accelerate updates to the IPsec security association
contexts. The context processor contains a context cache.
This patch updates CPT LF ALLOC mailbox to config ctx_ilen
requested by VFs. CPT_LF_ALLOC:ctx_ilen is the size of
initial context fetch.

Signed-off-by: Srujana Challa <schalla@marvell.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/af/mbox.h
drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c

index 9eac73bfc9cbcfdee42b7d44a45182a0de77b97a..abe86778b06407999485ce52f200fd9e2f702fb2 100644 (file)
@@ -1614,6 +1614,8 @@ struct cpt_lf_alloc_req_msg {
        u16 sso_pf_func;
        u16 eng_grpmsk;
        int blkaddr;
+       u8 ctx_ilen_valid : 1;
+       u8 ctx_ilen : 7;
 };
 
 #define CPT_INLINE_INBOUND      0
index 302ff549284e5102d18dd14dd7207d0af95d808d..d7ca7e953683bd1efa273ba64482c1bf7f4d8719 100644 (file)
@@ -17,7 +17,7 @@
 #define        PCI_DEVID_OTX2_CPT10K_PF 0xA0F2
 
 /* Length of initial context fetch in 128 byte words */
-#define CPT_CTX_ILEN    2ULL
+#define CPT_CTX_ILEN    1ULL
 
 #define cpt_get_eng_sts(e_min, e_max, rsp, etype)                   \
 ({                                                                  \
@@ -421,8 +421,12 @@ int rvu_mbox_handler_cpt_lf_alloc(struct rvu *rvu,
 
                /* Set CPT LF group and priority */
                val = (u64)req->eng_grpmsk << 48 | 1;
-               if (!is_rvu_otx2(rvu))
-                       val |= (CPT_CTX_ILEN << 17);
+               if (!is_rvu_otx2(rvu)) {
+                       if (req->ctx_ilen_valid)
+                               val |= (req->ctx_ilen << 17);
+                       else
+                               val |= (CPT_CTX_ILEN << 17);
+               }
 
                rvu_write64(rvu, blkaddr, CPT_AF_LFX_CTL(cptlf), val);