From 0663a84524e5c63cb737cd723b4ea33493e8d17a Mon Sep 17 00:00:00 2001 From: Nithin Dabilpuram Date: Tue, 2 Nov 2021 21:24:16 +0530 Subject: [PATCH] common/cnxk: enable backpressure on CPT with inline inbound Enable backpressure on CPT with inline inbound enabled. Signed-off-by: Nithin Dabilpuram Acked-by: Jerin Jacob --- drivers/common/cnxk/roc_mbox.h | 4 ++++ drivers/common/cnxk/roc_nix_fc.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/drivers/common/cnxk/roc_mbox.h b/drivers/common/cnxk/roc_mbox.h index 5dcb4459a6..bf5495dc49 100644 --- a/drivers/common/cnxk/roc_mbox.h +++ b/drivers/common/cnxk/roc_mbox.h @@ -239,6 +239,10 @@ struct mbox_msghdr { M(NIX_BANDPROF_ALLOC, 0x801d, nix_bandprof_alloc, \ nix_bandprof_alloc_req, nix_bandprof_alloc_rsp) \ M(NIX_BANDPROF_FREE, 0x801e, nix_bandprof_free, nix_bandprof_free_req, \ + msg_rsp) \ + M(NIX_CPT_BP_ENABLE, 0x8020, nix_cpt_bp_enable, nix_bp_cfg_req, \ + nix_bp_cfg_rsp) \ + M(NIX_CPT_BP_DISABLE, 0x8021, nix_cpt_bp_disable, nix_bp_cfg_req, \ msg_rsp) /* Messages initiated by AF (range 0xC00 - 0xDFF) */ diff --git a/drivers/common/cnxk/roc_nix_fc.c b/drivers/common/cnxk/roc_nix_fc.c index 645325813a..ca29cd2bf9 100644 --- a/drivers/common/cnxk/roc_nix_fc.c +++ b/drivers/common/cnxk/roc_nix_fc.c @@ -70,6 +70,34 @@ nix_fc_rxchan_bpid_set(struct roc_nix *roc_nix, bool enable) nix->chan_cnt = 0; } + if (roc_model_is_cn9k()) + goto exit; + + /* Enable backpressure on CPT if inline inb is enabled */ + if (enable && roc_nix_inl_inb_is_enabled(roc_nix)) { + req = mbox_alloc_msg_nix_cpt_bp_enable(mbox); + if (req == NULL) + return rc; + req->chan_base = 0; + req->chan_cnt = 1; + req->bpid_per_chan = 0; + + rc = mbox_process_msg(mbox, (void *)&rsp); + if (rc) + goto exit; + } else { + req = mbox_alloc_msg_nix_cpt_bp_disable(mbox); + if (req == NULL) + return rc; + req->chan_base = 0; + req->chan_cnt = 1; + req->bpid_per_chan = 0; + + rc = mbox_process_msg(mbox, (void *)&rsp); + if (rc) + goto exit; + } + exit: return rc; } -- 2.39.5