Skip to content

Commit

Permalink
bnxt_en: Refactor TX ring allocation logic
Browse files Browse the repository at this point in the history
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>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250213011240.1640031-4-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Michael Chan authored and Jakub Kicinski committed Feb 15, 2025
1 parent 0fed290 commit e6ec504
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions drivers/net/ethernet/broadcom/bnxt/bnxt.c
Original file line number Diff line number Diff line change
Expand Up @@ -7218,6 +7218,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;
const 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);
Expand Down Expand Up @@ -7254,23 +7268,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++) {
Expand Down

0 comments on commit e6ec504

Please sign in to comment.