mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 02:31:27 +02:00
bnxt_en: Refactor TX ring allocation logic
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>
This commit is contained in:
parent
0fed290525
commit
e6ec504856
|
|
@ -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);
|
||||
|
|
@ -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++) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user