Message ID | 20250113063927.4017173-4-michael.chan@broadcom.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | bnxt_en: Add NPAR 1.2 and TPH support | expand |
On Sun, Jan 12, 2025 at 10:39:20PM -0800, Michael Chan wrote: > Add a new bnxt_hwrm_tx_ring_alloc() function to handle allocating > a transmit ring. This will be useful later in the series. > > Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> > Signed-off-by: Michael Chan <michael.chan@broadcom.com> > --- > drivers/net/ethernet/broadcom/bnxt/bnxt.c | 22 +++++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c > index d364a707664b..e9a2e30c1537 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c > @@ -7191,6 +7191,20 @@ static int bnxt_hwrm_cp_ring_alloc_p5(struct bnxt *bp, > return 0; > } > > +static int bnxt_hwrm_tx_ring_alloc(struct bnxt *bp, > + struct bnxt_tx_ring_info *txr, u32 tx_idx) > +{ > + struct bnxt_ring_struct *ring = &txr->tx_ring_struct; > + u32 type = HWRM_RING_ALLOC_TX; Nit as previous, can be const > + int rc; > + > + rc = hwrm_ring_alloc_send_msg(bp, ring, type, tx_idx); > + if (rc) > + return rc; > + bnxt_set_db(bp, &txr->tx_db, type, tx_idx, ring->fw_ring_id); > + return 0; > +} > + > static int bnxt_hwrm_ring_alloc(struct bnxt *bp) > { > bool agg_rings = !!(bp->flags & BNXT_FLAG_AGG_RINGS); > @@ -7227,23 +7241,17 @@ static int bnxt_hwrm_ring_alloc(struct bnxt *bp) > } > } > > - type = HWRM_RING_ALLOC_TX; > for (i = 0; i < bp->tx_nr_rings; i++) { > struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; > - struct bnxt_ring_struct *ring; > - u32 map_idx; > > if (bp->flags & BNXT_FLAG_CHIP_P5_PLUS) { > rc = bnxt_hwrm_cp_ring_alloc_p5(bp, txr->tx_cpr); > if (rc) > goto err_out; > } > - ring = &txr->tx_ring_struct; > - map_idx = i; > - rc = hwrm_ring_alloc_send_msg(bp, ring, type, map_idx); > + rc = bnxt_hwrm_tx_ring_alloc(bp, txr, i); > if (rc) > goto err_out; > - bnxt_set_db(bp, &txr->tx_db, type, map_idx, ring->fw_ring_id); > } > > for (i = 0; i < bp->rx_nr_rings; i++) { > -- > 2.30.1 Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index d364a707664b..e9a2e30c1537 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7191,6 +7191,20 @@ static int bnxt_hwrm_cp_ring_alloc_p5(struct bnxt *bp, return 0; } +static int bnxt_hwrm_tx_ring_alloc(struct bnxt *bp, + struct bnxt_tx_ring_info *txr, u32 tx_idx) +{ + struct bnxt_ring_struct *ring = &txr->tx_ring_struct; + u32 type = HWRM_RING_ALLOC_TX; + int rc; + + rc = hwrm_ring_alloc_send_msg(bp, ring, type, tx_idx); + if (rc) + return rc; + bnxt_set_db(bp, &txr->tx_db, type, tx_idx, ring->fw_ring_id); + return 0; +} + static int bnxt_hwrm_ring_alloc(struct bnxt *bp) { bool agg_rings = !!(bp->flags & BNXT_FLAG_AGG_RINGS); @@ -7227,23 +7241,17 @@ static int bnxt_hwrm_ring_alloc(struct bnxt *bp) } } - type = HWRM_RING_ALLOC_TX; for (i = 0; i < bp->tx_nr_rings; i++) { struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; - struct bnxt_ring_struct *ring; - u32 map_idx; if (bp->flags & BNXT_FLAG_CHIP_P5_PLUS) { rc = bnxt_hwrm_cp_ring_alloc_p5(bp, txr->tx_cpr); if (rc) goto err_out; } - ring = &txr->tx_ring_struct; - map_idx = i; - rc = hwrm_ring_alloc_send_msg(bp, ring, type, map_idx); + rc = bnxt_hwrm_tx_ring_alloc(bp, txr, i); if (rc) goto err_out; - bnxt_set_db(bp, &txr->tx_db, type, map_idx, ring->fw_ring_id); } for (i = 0; i < bp->rx_nr_rings; i++) {