From: Sunil Kumar Kori <sk...@marvell.com>

To achieve actual PFC behavior, user needs to configure
different TC on different aura so that PFC can be generated
for specific TC but same TC can also configured on multiple
RQs which has same configured aura.

In this patch, aura with same BP configuration is allowed
on multiple RQs.

Signed-off-by: Sunil Kumar Kori <sk...@marvell.com>
---
 drivers/common/cnxk/roc_nix_fc.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/common/cnxk/roc_nix_fc.c b/drivers/common/cnxk/roc_nix_fc.c
index 0f9b5cbbc0..2a58567751 100644
--- a/drivers/common/cnxk/roc_nix_fc.c
+++ b/drivers/common/cnxk/roc_nix_fc.c
@@ -501,7 +501,6 @@ roc_nix_fc_npa_bp_cfg(struct roc_nix *roc_nix, uint64_t 
pool_id, uint8_t ena, ui
        bpid = (aura_attr->bp_ena & 0x1) ? aura_attr->nix0_bpid : 
aura_attr->nix1_bpid;
        /* BP is already enabled. */
        if (aura_attr->bp_ena && ena) {
-               /* Disable BP if BPIDs don't match and couldn't add new BPID. */
                if (bpid != nix->bpid[tc]) {
                        uint16_t bpid_new = NIX_BPID_INVALID;
 
@@ -519,15 +518,13 @@ roc_nix_fc_npa_bp_cfg(struct roc_nix *roc_nix, uint64_t 
pool_id, uint8_t ena, ui
                                plt_info("Ignoring port=%u tc=%u config on 
shared aura 0x%" PRIx64,
                                         roc_nix->port_id, tc, pool_id);
                        }
+               } else {
+                       aura_attr->ref_count++;
                }
 
                return;
        }
 
-       /* BP was previously enabled but now disabled skip. */
-       if (aura_attr->bp && ena)
-               return;
-
        if (ena) {
                if (roc_npa_aura_bp_configure(pool_id, nix->bpid[tc], bp_intf, 
bp_thresh, true))
                        plt_err("Enabling backpressue failed on aura 0x%" 
PRIx64, pool_id);
-- 
2.25.1

Reply via email to