mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 03:20:25 -04:00
bnxt_en: Add macros related to TC and TX rings
Add 3 macros that handle to conversions between TC numbers and TX ring numbers. These will help to clarify the existing logic and the new logic in the next patch. Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f5b29c6afe
commit
f07b58801b
@@ -3415,6 +3415,15 @@ static void bnxt_free_tx_rings(struct bnxt *bp)
|
||||
}
|
||||
}
|
||||
|
||||
#define BNXT_TC_TO_RING_BASE(bp, tc) \
|
||||
((tc) * (bp)->tx_nr_rings_per_tc)
|
||||
|
||||
#define BNXT_RING_TO_TC_OFF(bp, tx) \
|
||||
((tx) % (bp)->tx_nr_rings_per_tc)
|
||||
|
||||
#define BNXT_RING_TO_TC(bp, tx) \
|
||||
((tx) / (bp)->tx_nr_rings_per_tc)
|
||||
|
||||
static int bnxt_alloc_tx_rings(struct bnxt *bp)
|
||||
{
|
||||
int i, j, rc;
|
||||
@@ -3470,7 +3479,7 @@ static int bnxt_alloc_tx_rings(struct bnxt *bp)
|
||||
spin_lock_init(&txr->xdp_tx_lock);
|
||||
if (i < bp->tx_nr_rings_xdp)
|
||||
continue;
|
||||
if (i % bp->tx_nr_rings_per_tc == (bp->tx_nr_rings_per_tc - 1))
|
||||
if (BNXT_RING_TO_TC_OFF(bp, i) == (bp->tx_nr_rings_per_tc - 1))
|
||||
j++;
|
||||
}
|
||||
return 0;
|
||||
@@ -9140,7 +9149,7 @@ static void bnxt_setup_msix(struct bnxt *bp)
|
||||
|
||||
for (i = 0; i < tcs; i++) {
|
||||
count = bp->tx_nr_rings_per_tc;
|
||||
off = i * count;
|
||||
off = BNXT_TC_TO_RING_BASE(bp, i);
|
||||
netdev_set_tc_queue(dev, i, count, off);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user