Lines Matching refs:tx_ring
631 * @tx_ring: XDP Tx ring
634 static void i40e_clean_xdp_tx_buffer(struct i40e_ring *tx_ring,
638 tx_ring->xdp_tx_active--;
639 dma_unmap_single(tx_ring->dev,
648 * @tx_ring: XDP Tx ring
652 bool i40e_clean_xdp_tx_irq(struct i40e_vsi *vsi, struct i40e_ring *tx_ring)
654 struct xsk_buff_pool *bp = tx_ring->xsk_pool;
656 u32 head_idx = i40e_get_head(tx_ring);
660 if (head_idx < tx_ring->next_to_clean)
661 head_idx += tx_ring->count;
662 completed_frames = head_idx - tx_ring->next_to_clean;
667 if (likely(!tx_ring->xdp_tx_active)) {
672 ntc = tx_ring->next_to_clean;
675 tx_bi = &tx_ring->tx_bi[ntc];
678 i40e_clean_xdp_tx_buffer(tx_ring, tx_bi);
684 if (++ntc >= tx_ring->count)
689 tx_ring->next_to_clean += completed_frames;
690 if (unlikely(tx_ring->next_to_clean >= tx_ring->count))
691 tx_ring->next_to_clean -= tx_ring->count;
696 i40e_arm_wb(tx_ring, vsi, completed_frames);
699 if (xsk_uses_need_wakeup(tx_ring->xsk_pool))
700 xsk_set_tx_need_wakeup(tx_ring->xsk_pool);
702 return i40e_xmit_zc(tx_ring, I40E_DESC_UNUSED(tx_ring));
766 * @tx_ring: XDP Tx ring
768 void i40e_xsk_clean_tx_ring(struct i40e_ring *tx_ring)
770 u16 ntc = tx_ring->next_to_clean, ntu = tx_ring->next_to_use;
771 struct xsk_buff_pool *bp = tx_ring->xsk_pool;
776 tx_bi = &tx_ring->tx_bi[ntc];
779 i40e_clean_xdp_tx_buffer(tx_ring, tx_bi);
786 if (ntc >= tx_ring->count)