[net] Octeontx2-pf: Fix Backpresure configuration

Hariprasad Kelam posted 1 patch 3 months, 3 weeks ago
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[net] Octeontx2-pf: Fix Backpresure configuration
Posted by Hariprasad Kelam 3 months, 3 weeks ago
NIX block can receive packets from multiple links such as
MAC (RPM), LBK and CPT.

       -----------------
 RPM --|     NIX       |
       -----------------
             |
             |
            LBK

Each link supports multiple channels for example RPM link supports
16 channels. In case of link oversubsribe, NIX will assert backpressure
on receive channels.

The previous patch considered a single channel per link, resulting in
backpressure not being enabled on the remaining channels

Fixes: a7ef63dbd588 ("octeontx2-af: Disable backpressure between CPT and NIX")
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
index 6f572589f1e5..6b5c9536d26d 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
@@ -1822,7 +1822,7 @@ int otx2_nix_config_bp(struct otx2_nic *pfvf, bool enable)
 		req->chan_cnt = IEEE_8021QAZ_MAX_TCS;
 		req->bpid_per_chan = 1;
 	} else {
-		req->chan_cnt = 1;
+		req->chan_cnt = pfvf->hw.rx_chan_cnt;
 		req->bpid_per_chan = 0;
 	}
 
@@ -1847,7 +1847,7 @@ int otx2_nix_cpt_config_bp(struct otx2_nic *pfvf, bool enable)
 		req->chan_cnt = IEEE_8021QAZ_MAX_TCS;
 		req->bpid_per_chan = 1;
 	} else {
-		req->chan_cnt = 1;
+		req->chan_cnt = pfvf->hw.rx_chan_cnt;
 		req->bpid_per_chan = 0;
 	}
 
-- 
2.34.1
Re: [net] Octeontx2-pf: Fix Backpresure configuration
Posted by Simon Horman 3 months, 3 weeks ago
On Tue, Jun 17, 2025 at 12:04:02PM +0530, Hariprasad Kelam wrote:
> NIX block can receive packets from multiple links such as
> MAC (RPM), LBK and CPT.
> 
>        -----------------
>  RPM --|     NIX       |
>        -----------------
>              |
>              |
>             LBK
> 
> Each link supports multiple channels for example RPM link supports
> 16 channels. In case of link oversubsribe, NIX will assert backpressure
> on receive channels.
> 
> The previous patch considered a single channel per link, resulting in
> backpressure not being enabled on the remaining channels
> 
> Fixes: a7ef63dbd588 ("octeontx2-af: Disable backpressure between CPT and NIX")
> Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>

Reviewed-by: Simon Horman <horms@kernel.org>