Lines Matching refs:txr

334 void bnxt_sched_reset_txr(struct bnxt *bp, struct bnxt_tx_ring_info *txr,
337 struct bnxt_napi *bnapi = txr->bnapi;
343 txr->txq_index, bnapi->tx_pkts,
344 txr->tx_cons, txr->tx_prod, idx);
382 static void bnxt_txr_db_kick(struct bnxt *bp, struct bnxt_tx_ring_info *txr,
385 bnxt_db_write(bp, &txr->tx_db, prod);
386 txr->kick_pending = 0;
401 struct bnxt_tx_ring_info *txr;
413 txr = &bp->tx_ring[bp->tx_ring_map[i]];
414 prod = txr->tx_prod;
416 free_size = bnxt_tx_avail(bp, txr);
419 if (net_ratelimit() && txr->kick_pending)
422 if (!netif_txq_try_stop(txq, bnxt_tx_avail(bp, txr),
434 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
438 tx_buf = &txr->tx_buf_ring[prod];
476 struct tx_push_buffer *tx_push_buf = txr->tx_push;
479 void __iomem *db = txr->tx_db.doorbell;
522 txbd->tx_bd_haddr = txr->data_mapping;
524 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
529 WRITE_ONCE(txr->tx_prod, prod);
569 &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
609 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
618 tx_buf = &txr->tx_buf_ring[prod];
640 WRITE_ONCE(txr->tx_prod, prod);
643 bnxt_txr_db_kick(bp, txr, prod);
645 txr->kick_pending = 1;
649 if (unlikely(bnxt_tx_avail(bp, txr) <= MAX_SKB_FRAGS + 1)) {
651 bnxt_txr_db_kick(bp, txr, prod);
653 netif_txq_try_stop(txq, bnxt_tx_avail(bp, txr),
665 prod = txr->tx_prod;
666 tx_buf = &txr->tx_buf_ring[prod];
674 tx_buf = &txr->tx_buf_ring[prod];
683 if (txr->kick_pending)
684 bnxt_txr_db_kick(bp, txr, txr->tx_prod);
685 txr->tx_buf_ring[txr->tx_prod].skb = NULL;
692 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
693 struct netdev_queue *txq = netdev_get_tx_queue(bp->dev, txr->txq_index);
694 u16 cons = txr->tx_cons;
705 tx_buf = &txr->tx_buf_ring[cons];
711 bnxt_sched_reset_txr(bp, txr, i);
728 tx_buf = &txr->tx_buf_ring[cons];
752 WRITE_ONCE(txr->tx_cons, cons);
755 bnxt_tx_avail(bp, txr), bp->tx_wake_thresh,
756 READ_ONCE(txr->dev_state) == BNXT_DEV_STATE_CLOSING);
2570 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
2571 u16 prod = txr->tx_prod;
2576 bnxt_db_write_relaxed(bp, &txr->tx_db, prod);
2860 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
2863 if (!txr->tx_buf_ring)
2867 struct bnxt_sw_tx_bd *tx_buf = &txr->tx_buf_ring[j];
2909 tx_buf = &txr->tx_buf_ring[ring_idx];
3297 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
3300 if (txr->tx_push) {
3302 txr->tx_push, txr->tx_push_mapping);
3303 txr->tx_push = NULL;
3306 ring = &txr->tx_ring_struct;
3333 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
3337 ring = &txr->tx_ring_struct;
3343 ring->grp_idx = txr->bnapi->index;
3350 txr->tx_push = dma_alloc_coherent(&pdev->dev,
3352 &txr->tx_push_mapping,
3355 if (!txr->tx_push)
3358 mapping = txr->tx_push_mapping +
3360 txr->data_mapping = cpu_to_le64(mapping);
3364 spin_lock_init(&txr->xdp_tx_lock);
3561 struct bnxt_tx_ring_info *txr;
3599 txr = bnapi->tx_ring;
3600 if (!txr)
3603 ring = &txr->tx_ring_struct;
3607 rmem->pg_arr = (void **)txr->tx_desc_ring;
3608 rmem->dma_arr = txr->tx_desc_mapping;
3610 rmem->vmem = (void **)&txr->tx_buf_ring;
3774 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
3775 struct bnxt_ring_struct *ring = &txr->tx_ring_struct;
4419 struct bnxt_tx_ring_info *txr;
4427 txr = bnapi->tx_ring;
4428 if (txr) {
4429 txr->tx_prod = 0;
4430 txr->tx_cons = 0;
4589 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
4592 txr->tx_ring_struct.ring_mem.flags =
4594 txr->bnapi = bp->bnapi[j];
4595 bp->bnapi[j]->tx_ring = txr;
4598 txr->txq_index = i - bp->tx_nr_rings_xdp;
5165 static u16 bnxt_cp_ring_for_tx(struct bnxt *bp, struct bnxt_tx_ring_info *txr)
5168 struct bnxt_napi *bnapi = txr->bnapi;
5174 return bnxt_cp_ring_from_grp(bp, &txr->tx_ring_struct);
5733 struct bnxt_tx_ring_info *txr;
5735 txr = container_of(ring, struct bnxt_tx_ring_info,
5740 req->cmpl_ring_id = cpu_to_le16(bnxt_cp_ring_for_tx(bp, txr));
5929 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
5934 struct bnxt_napi *bnapi = txr->bnapi;
5950 ring = &txr->tx_ring_struct;
5955 bnxt_set_db(bp, &txr->tx_db, type, map_idx, ring->fw_ring_id);
6056 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
6057 struct bnxt_ring_struct *ring = &txr->tx_ring_struct;
6060 u32 cmpl_ring_id = bnxt_cp_ring_for_tx(bp, txr);
9457 struct bnxt_tx_ring_info *txr;
9461 txr = &bp->tx_ring[i];
9462 WRITE_ONCE(txr->dev_state, BNXT_DEV_STATE_CLOSING);
9476 struct bnxt_tx_ring_info *txr;
9479 txr = &bp->tx_ring[i];
9480 WRITE_ONCE(txr->dev_state, 0);
11554 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
11557 if (!txr)
11561 i, txr->tx_ring_struct.fw_ring_id, txr->tx_prod,
11562 txr->tx_cons);