Lines Matching refs:txr

328 static void bnxt_txr_db_kick(struct bnxt *bp, struct bnxt_tx_ring_info *txr,  in bnxt_txr_db_kick()  argument
331 bnxt_db_write(bp, &txr->tx_db, prod); in bnxt_txr_db_kick()
332 txr->kick_pending = 0; in bnxt_txr_db_kick()
336 struct bnxt_tx_ring_info *txr, in bnxt_txr_netif_try_stop_queue() argument
347 if (bnxt_tx_avail(bp, txr) >= bp->tx_wake_thresh) { in bnxt_txr_netif_try_stop_queue()
367 struct bnxt_tx_ring_info *txr; in bnxt_start_xmit() local
379 txr = &bp->tx_ring[bp->tx_ring_map[i]]; in bnxt_start_xmit()
380 prod = txr->tx_prod; in bnxt_start_xmit()
382 free_size = bnxt_tx_avail(bp, txr); in bnxt_start_xmit()
385 if (net_ratelimit() && txr->kick_pending) in bnxt_start_xmit()
388 if (bnxt_txr_netif_try_stop_queue(bp, txr, txq)) in bnxt_start_xmit()
399 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)]; in bnxt_start_xmit()
403 tx_buf = &txr->tx_buf_ring[prod]; in bnxt_start_xmit()
441 struct tx_push_buffer *tx_push_buf = txr->tx_push; in bnxt_start_xmit()
444 void __iomem *db = txr->tx_db.doorbell; in bnxt_start_xmit()
487 txbd->tx_bd_haddr = txr->data_mapping; in bnxt_start_xmit()
489 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)]; in bnxt_start_xmit()
494 txr->tx_prod = prod; in bnxt_start_xmit()
534 &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)]; in bnxt_start_xmit()
574 txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)]; in bnxt_start_xmit()
583 tx_buf = &txr->tx_buf_ring[prod]; in bnxt_start_xmit()
605 txr->tx_prod = prod; in bnxt_start_xmit()
608 bnxt_txr_db_kick(bp, txr, prod); in bnxt_start_xmit()
610 txr->kick_pending = 1; in bnxt_start_xmit()
614 if (unlikely(bnxt_tx_avail(bp, txr) <= MAX_SKB_FRAGS + 1)) { in bnxt_start_xmit()
616 bnxt_txr_db_kick(bp, txr, prod); in bnxt_start_xmit()
618 bnxt_txr_netif_try_stop_queue(bp, txr, txq); in bnxt_start_xmit()
629 prod = txr->tx_prod; in bnxt_start_xmit()
630 tx_buf = &txr->tx_buf_ring[prod]; in bnxt_start_xmit()
638 tx_buf = &txr->tx_buf_ring[prod]; in bnxt_start_xmit()
647 if (txr->kick_pending) in bnxt_start_xmit()
648 bnxt_txr_db_kick(bp, txr, txr->tx_prod); in bnxt_start_xmit()
649 txr->tx_buf_ring[txr->tx_prod].skb = NULL; in bnxt_start_xmit()
656 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_tx_int() local
657 struct netdev_queue *txq = netdev_get_tx_queue(bp->dev, txr->txq_index); in bnxt_tx_int()
658 u16 cons = txr->tx_cons; in bnxt_tx_int()
668 tx_buf = &txr->tx_buf_ring[cons]; in bnxt_tx_int()
686 tx_buf = &txr->tx_buf_ring[cons]; in bnxt_tx_int()
710 txr->tx_cons = cons; in bnxt_tx_int()
720 bnxt_tx_avail(bp, txr) >= bp->tx_wake_thresh && in bnxt_tx_int()
721 READ_ONCE(txr->dev_state) != BNXT_DEV_STATE_CLOSING) in bnxt_tx_int()
2585 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in __bnxt_poll_work() local
2586 u16 prod = txr->tx_prod; in __bnxt_poll_work()
2591 bnxt_db_write_relaxed(bp, &txr->tx_db, prod); in __bnxt_poll_work()
2870 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_free_tx_skbs() local
2873 if (!txr->tx_buf_ring) in bnxt_free_tx_skbs()
2877 struct bnxt_sw_tx_bd *tx_buf = &txr->tx_buf_ring[j]; in bnxt_free_tx_skbs()
2919 tx_buf = &txr->tx_buf_ring[ring_idx]; in bnxt_free_tx_skbs()
3321 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_free_tx_rings() local
3324 if (txr->tx_push) { in bnxt_free_tx_rings()
3326 txr->tx_push, txr->tx_push_mapping); in bnxt_free_tx_rings()
3327 txr->tx_push = NULL; in bnxt_free_tx_rings()
3330 ring = &txr->tx_ring_struct; in bnxt_free_tx_rings()
3357 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_alloc_tx_rings() local
3361 ring = &txr->tx_ring_struct; in bnxt_alloc_tx_rings()
3367 ring->grp_idx = txr->bnapi->index; in bnxt_alloc_tx_rings()
3374 txr->tx_push = dma_alloc_coherent(&pdev->dev, in bnxt_alloc_tx_rings()
3376 &txr->tx_push_mapping, in bnxt_alloc_tx_rings()
3379 if (!txr->tx_push) in bnxt_alloc_tx_rings()
3382 mapping = txr->tx_push_mapping + in bnxt_alloc_tx_rings()
3384 txr->data_mapping = cpu_to_le64(mapping); in bnxt_alloc_tx_rings()
3388 spin_lock_init(&txr->xdp_tx_lock); in bnxt_alloc_tx_rings()
3585 struct bnxt_tx_ring_info *txr; in bnxt_init_ring_struct() local
3623 txr = bnapi->tx_ring; in bnxt_init_ring_struct()
3624 if (!txr) in bnxt_init_ring_struct()
3627 ring = &txr->tx_ring_struct; in bnxt_init_ring_struct()
3631 rmem->pg_arr = (void **)txr->tx_desc_ring; in bnxt_init_ring_struct()
3632 rmem->dma_arr = txr->tx_desc_mapping; in bnxt_init_ring_struct()
3634 rmem->vmem = (void **)&txr->tx_buf_ring; in bnxt_init_ring_struct()
3798 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_init_tx_rings() local
3799 struct bnxt_ring_struct *ring = &txr->tx_ring_struct; in bnxt_init_tx_rings()
4440 struct bnxt_tx_ring_info *txr; in bnxt_clear_ring_indices() local
4448 txr = bnapi->tx_ring; in bnxt_clear_ring_indices()
4449 if (txr) { in bnxt_clear_ring_indices()
4450 txr->tx_prod = 0; in bnxt_clear_ring_indices()
4451 txr->tx_cons = 0; in bnxt_clear_ring_indices()
4610 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_alloc_mem() local
4613 txr->tx_ring_struct.ring_mem.flags = in bnxt_alloc_mem()
4615 txr->bnapi = bp->bnapi[j]; in bnxt_alloc_mem()
4616 bp->bnapi[j]->tx_ring = txr; in bnxt_alloc_mem()
4619 txr->txq_index = i - bp->tx_nr_rings_xdp; in bnxt_alloc_mem()
5183 static u16 bnxt_cp_ring_for_tx(struct bnxt *bp, struct bnxt_tx_ring_info *txr) in bnxt_cp_ring_for_tx() argument
5186 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_cp_ring_for_tx()
5192 return bnxt_cp_ring_from_grp(bp, &txr->tx_ring_struct); in bnxt_cp_ring_for_tx()
5750 struct bnxt_tx_ring_info *txr; in hwrm_ring_alloc_send_msg() local
5752 txr = container_of(ring, struct bnxt_tx_ring_info, in hwrm_ring_alloc_send_msg()
5757 req->cmpl_ring_id = cpu_to_le16(bnxt_cp_ring_for_tx(bp, txr)); in hwrm_ring_alloc_send_msg()
5946 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_hwrm_ring_alloc() local
5951 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_hwrm_ring_alloc()
5967 ring = &txr->tx_ring_struct; in bnxt_hwrm_ring_alloc()
5972 bnxt_set_db(bp, &txr->tx_db, type, map_idx, ring->fw_ring_id); in bnxt_hwrm_ring_alloc()
6073 struct bnxt_tx_ring_info *txr = &bp->tx_ring[i]; in bnxt_hwrm_ring_free() local
6074 struct bnxt_ring_struct *ring = &txr->tx_ring_struct; in bnxt_hwrm_ring_free()
6077 u32 cmpl_ring_id = bnxt_cp_ring_for_tx(bp, txr); in bnxt_hwrm_ring_free()
9465 struct bnxt_tx_ring_info *txr; in bnxt_tx_disable() local
9469 txr = &bp->tx_ring[i]; in bnxt_tx_disable()
9470 WRITE_ONCE(txr->dev_state, BNXT_DEV_STATE_CLOSING); in bnxt_tx_disable()
9484 struct bnxt_tx_ring_info *txr; in bnxt_tx_enable() local
9487 txr = &bp->tx_ring[i]; in bnxt_tx_enable()
9488 WRITE_ONCE(txr->dev_state, 0); in bnxt_tx_enable()
11528 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_dump_tx_sw_state() local
11531 if (!txr) in bnxt_dump_tx_sw_state()
11535 i, txr->tx_ring_struct.fw_ring_id, txr->tx_prod, in bnxt_dump_tx_sw_state()
11536 txr->tx_cons); in bnxt_dump_tx_sw_state()