Lines Matching refs:txr
365 static void bnxt_txr_db_kick(struct bnxt *bp, struct bnxt_tx_ring_info *txr,
368 bnxt_db_write(bp, &txr->tx_db, prod);
369 txr->kick_pending = 0;
373 struct bnxt_tx_ring_info *txr,
384 if (bnxt_tx_avail(bp, txr) >= bp->tx_wake_thresh) {
404 struct bnxt_tx_ring_info *txr;
415 txr = &bp->tx_ring[bp->tx_ring_map[i]];
416 prod = txr->tx_prod;
418 free_size = bnxt_tx_avail(bp, txr);
421 if (net_ratelimit() && txr->kick_pending)
424 if (bnxt_txr_netif_try_stop_queue(bp, txr, txq))
432 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
436 tx_buf = &txr->tx_buf_ring[prod];
453 struct tx_push_buffer *tx_push_buf = txr->tx_push;
456 void __iomem *db = txr->tx_db.doorbell;
499 txbd->tx_bd_haddr = txr->data_mapping;
501 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
506 txr->tx_prod = prod;
546 &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
589 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
598 tx_buf = &txr->tx_buf_ring[prod];
618 txr->tx_prod = prod;
621 bnxt_txr_db_kick(bp, txr, prod);
623 txr->kick_pending = 1;
627 if (unlikely(bnxt_tx_avail(bp, txr) <= MAX_SKB_FRAGS + 1)) {
629 bnxt_txr_db_kick(bp, txr, prod);
631 bnxt_txr_netif_try_stop_queue(bp, txr, txq);
639 prod = txr->tx_prod;
640 tx_buf = &txr->tx_buf_ring[prod];
648 tx_buf = &txr->tx_buf_ring[prod];
657 if (txr->kick_pending)
658 bnxt_txr_db_kick(bp, txr, txr->tx_prod);
659 txr->tx_buf_ring[txr->tx_prod].skb = NULL;
666 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
667 struct netdev_queue *txq = netdev_get_tx_queue(bp->dev, txr->txq_index);
668 u16 cons = txr->tx_cons;
678 tx_buf = &txr->tx_buf_ring[cons];
694 tx_buf = &txr->tx_buf_ring[cons];
710 txr->tx_cons = cons;
720 bnxt_tx_avail(bp, txr) >= bp->tx_wake_thresh &&
721 READ_ONCE(txr->dev_state) != BNXT_DEV_STATE_CLOSING)
2347 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
2348 u16 prod = txr->tx_prod;
2353 bnxt_db_write_relaxed(bp, &txr->tx_db, prod);
2614 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
2617 if (!txr->tx_buf_ring)
2621 struct bnxt_sw_tx_bd *tx_buf = &txr->tx_buf_ring[j];
2663 tx_buf = &txr->tx_buf_ring[ring_idx];
3035 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
3038 if (txr->tx_push) {
3040 txr->tx_push, txr->tx_push_mapping);
3041 txr->tx_push = NULL;
3044 ring = &txr->tx_ring_struct;
3071 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
3075 ring = &txr->tx_ring_struct;
3081 ring->grp_idx = txr->bnapi->index;
3088 txr->tx_push = dma_alloc_coherent(&pdev->dev,
3090 &txr->tx_push_mapping,
3093 if (!txr->tx_push)
3096 mapping = txr->tx_push_mapping +
3098 txr->data_mapping = cpu_to_le64(mapping);
3234 struct bnxt_tx_ring_info *txr;
3272 txr = bnapi->tx_ring;
3273 if (!txr)
3276 ring = &txr->tx_ring_struct;
3280 rmem->pg_arr = (void **)txr->tx_desc_ring;
3281 rmem->dma_arr = txr->tx_desc_mapping;
3283 rmem->vmem = (void **)&txr->tx_buf_ring;
3447 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
3448 struct bnxt_ring_struct *ring = &txr->tx_ring_struct;
4118 struct bnxt_tx_ring_info *txr;
4126 txr = bnapi->tx_ring;
4127 if (txr) {
4128 txr->tx_prod = 0;
4129 txr->tx_cons = 0;
4289 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
4292 txr->tx_ring_struct.ring_mem.flags =
4294 txr->bnapi = bp->bnapi[j];
4295 bp->bnapi[j]->tx_ring = txr;
4298 txr->txq_index = i - bp->tx_nr_rings_xdp;
5089 static u16 bnxt_cp_ring_for_tx(struct bnxt *bp, struct bnxt_tx_ring_info *txr)
5092 struct bnxt_napi *bnapi = txr->bnapi;
5098 return bnxt_cp_ring_from_grp(bp, &txr->tx_ring_struct);
5595 struct bnxt_tx_ring_info *txr;
5597 txr = container_of(ring, struct bnxt_tx_ring_info,
5602 req.cmpl_ring_id = cpu_to_le16(bnxt_cp_ring_for_tx(bp, txr));
5785 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
5790 struct bnxt_napi *bnapi = txr->bnapi;
5806 ring = &txr->tx_ring_struct;
5811 bnxt_set_db(bp, &txr->tx_db, type, map_idx, ring->fw_ring_id);
5908 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
5909 struct bnxt_ring_struct *ring = &txr->tx_ring_struct;
5912 u32 cmpl_ring_id = bnxt_cp_ring_for_tx(bp, txr);
8959 struct bnxt_tx_ring_info *txr;
8963 txr = &bp->tx_ring[i];
8964 WRITE_ONCE(txr->dev_state, BNXT_DEV_STATE_CLOSING);
8978 struct bnxt_tx_ring_info *txr;
8981 txr = &bp->tx_ring[i];
8982 WRITE_ONCE(txr->dev_state, 0);
10664 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
10667 if (!txr)
10671 i, txr->tx_ring_struct.fw_ring_id, txr->tx_prod,
10672 txr->tx_cons);