Symbol: tx_ring
drivers/crypto/intel/qat/qat_common/adf_transport.c
393
struct adf_etr_ring_data *tx_ring;
drivers/crypto/intel/qat/qat_common/adf_transport.c
439
tx_ring = &bank->rings[i - hw_data->tx_rx_gap];
drivers/crypto/intel/qat/qat_common/adf_transport.c
440
ring->inflights = tx_ring->inflights;
drivers/crypto/intel/qat/qat_common/qat_algs.c
700
alg_req->tx_ring = inst->sym_tx;
drivers/crypto/intel/qat/qat_common/qat_algs_send.c
15
ret = adf_send_message(req->tx_ring, req->fw_req);
drivers/crypto/intel/qat/qat_common/qat_algs_send.c
30
if (adf_send_message(req->tx_ring, req->fw_req)) {
drivers/crypto/intel/qat/qat_common/qat_algs_send.c
46
struct adf_etr_ring_data *tx_ring = req->tx_ring;
drivers/crypto/intel/qat/qat_common/qat_algs_send.c
54
if (adf_ring_nearly_full(tx_ring))
drivers/crypto/intel/qat/qat_common/qat_algs_send.c
58
if (adf_send_message(tx_ring, fw_req))
drivers/crypto/intel/qat/qat_common/qat_algs_send.h
16
struct adf_etr_ring_data *tx_ring;
drivers/crypto/intel/qat/qat_common/qat_asym_algs.c
151
alg_req->tx_ring = inst->pke_tx;
drivers/crypto/intel/qat/qat_common/qat_comp_algs.c
50
alg_req->tx_ring = inst->dc_tx;
drivers/dma/xgene-dma.c
1181
xgene_dma_delete_ring_one(&chan->tx_ring);
drivers/dma/xgene-dma.c
1219
struct xgene_dma_ring *tx_ring = &chan->tx_ring;
drivers/dma/xgene-dma.c
1235
tx_ring->owner = XGENE_DMA_RING_OWNER_DMA;
drivers/dma/xgene-dma.c
1236
tx_ring->buf_num = XGENE_DMA_BUFNUM + chan->id;
drivers/dma/xgene-dma.c
1238
ret = xgene_dma_create_ring_one(chan, tx_ring,
drivers/dma/xgene-dma.c
1245
tx_ring->dst_ring_num = XGENE_DMA_RING_DST_ID(rx_ring->num);
drivers/dma/xgene-dma.c
1249
tx_ring->id, tx_ring->num, tx_ring->desc_vaddr);
drivers/dma/xgene-dma.c
1252
chan->max_outstanding = tx_ring->slots;
drivers/dma/xgene-dma.c
285
struct xgene_dma_ring tx_ring;
drivers/dma/xgene-dma.c
428
xgene_dma_init_desc(desc1, chan->tx_ring.dst_ring_num);
drivers/dma/xgene-dma.c
597
struct xgene_dma_ring *ring = &chan->tx_ring;
drivers/infiniband/hw/hfi1/ipoib.h
118
struct hfi1_ipoib_circ_buf ____cacheline_aligned_in_smp tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
108
atomic_xchg(&txq->tx_ring.ring_full, 0)) {
drivers/infiniband/hw/hfi1/ipoib_tx.c
136
struct hfi1_ipoib_circ_buf *tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
140
for (i = 0; i < tx_ring->max_items; i++) {
drivers/infiniband/hw/hfi1/ipoib_tx.c
141
tx = hfi1_txreq_from_idx(tx_ring, i);
drivers/infiniband/hw/hfi1/ipoib_tx.c
147
tx_ring->head = 0;
drivers/infiniband/hw/hfi1/ipoib_tx.c
148
tx_ring->tail = 0;
drivers/infiniband/hw/hfi1/ipoib_tx.c
149
tx_ring->complete_txreqs = 0;
drivers/infiniband/hw/hfi1/ipoib_tx.c
150
tx_ring->sent_txreqs = 0;
drivers/infiniband/hw/hfi1/ipoib_tx.c
151
tx_ring->avail = hfi1_ipoib_ring_hwat(txq);
drivers/infiniband/hw/hfi1/ipoib_tx.c
158
struct hfi1_ipoib_circ_buf *tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
159
u32 head = tx_ring->head;
drivers/infiniband/hw/hfi1/ipoib_tx.c
160
u32 max_tx = tx_ring->max_items;
drivers/infiniband/hw/hfi1/ipoib_tx.c
162
struct ipoib_txreq *tx = hfi1_txreq_from_idx(tx_ring, head);
drivers/infiniband/hw/hfi1/ipoib_tx.c
173
tx = hfi1_txreq_from_idx(tx_ring, head);
drivers/infiniband/hw/hfi1/ipoib_tx.c
175
tx_ring->complete_txreqs += work_done;
drivers/infiniband/hw/hfi1/ipoib_tx.c
178
smp_store_release(&tx_ring->head, head);
drivers/infiniband/hw/hfi1/ipoib_tx.c
330
ohdr->bth[2] = cpu_to_be32(mask_psn((u32)txp->txq->tx_ring.sent_txreqs));
drivers/infiniband/hw/hfi1/ipoib_tx.c
355
struct hfi1_ipoib_circ_buf *tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
356
u32 tail = tx_ring->tail;
drivers/infiniband/hw/hfi1/ipoib_tx.c
359
if (unlikely(!tx_ring->avail)) {
drivers/infiniband/hw/hfi1/ipoib_tx.c
366
head = smp_load_acquire(&tx_ring->head);
drivers/infiniband/hw/hfi1/ipoib_tx.c
367
tx_ring->avail =
drivers/infiniband/hw/hfi1/ipoib_tx.c
369
CIRC_CNT(head, tail, tx_ring->max_items));
drivers/infiniband/hw/hfi1/ipoib_tx.c
371
tx_ring->avail--;
drivers/infiniband/hw/hfi1/ipoib_tx.c
373
tx = hfi1_txreq_from_idx(tx_ring, tail);
drivers/infiniband/hw/hfi1/ipoib_tx.c
461
struct hfi1_ipoib_circ_buf *tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
479
tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
480
trace_hfi1_tx_consume(tx, tx_ring->tail);
drivers/infiniband/hw/hfi1/ipoib_tx.c
482
smp_store_release(&tx_ring->tail, CIRC_NEXT(tx_ring->tail, tx_ring->max_items));
drivers/infiniband/hw/hfi1/ipoib_tx.c
49
return hfi1_ipoib_txreqs(txq->tx_ring.sent_txreqs,
drivers/infiniband/hw/hfi1/ipoib_tx.c
50
txq->tx_ring.complete_txreqs);
drivers/infiniband/hw/hfi1/ipoib_tx.c
512
struct hfi1_ipoib_circ_buf *tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
542
tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
543
trace_hfi1_tx_consume(tx, tx_ring->tail);
drivers/infiniband/hw/hfi1/ipoib_tx.c
545
smp_store_release(&tx_ring->tail, CIRC_NEXT(tx_ring->tail, tx_ring->max_items));
drivers/infiniband/hw/hfi1/ipoib_tx.c
56
if (atomic_inc_return(&txq->tx_ring.stops) == 1)
drivers/infiniband/hw/hfi1/ipoib_tx.c
63
if (atomic_dec_and_test(&txq->tx_ring.stops))
drivers/infiniband/hw/hfi1/ipoib_tx.c
636
if (!atomic_xchg(&txq->tx_ring.no_desc, 1)) {
drivers/infiniband/hw/hfi1/ipoib_tx.c
679
if (atomic_xchg(&txq->tx_ring.no_desc, 0))
drivers/infiniband/hw/hfi1/ipoib_tx.c
687
struct hfi1_ipoib_circ_buf *tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
70
txq->tx_ring.max_items - 1);
drivers/infiniband/hw/hfi1/ipoib_tx.c
708
tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
720
atomic_set(&txq->tx_ring.stops, 0);
drivers/infiniband/hw/hfi1/ipoib_tx.c
721
atomic_set(&txq->tx_ring.ring_full, 0);
drivers/infiniband/hw/hfi1/ipoib_tx.c
722
atomic_set(&txq->tx_ring.no_desc, 0);
drivers/infiniband/hw/hfi1/ipoib_tx.c
731
txq->tx_ring.items =
drivers/infiniband/hw/hfi1/ipoib_tx.c
734
if (!txq->tx_ring.items)
drivers/infiniband/hw/hfi1/ipoib_tx.c
737
txq->tx_ring.max_items = tx_ring_size;
drivers/infiniband/hw/hfi1/ipoib_tx.c
738
txq->tx_ring.shift = ilog2(tx_item_size);
drivers/infiniband/hw/hfi1/ipoib_tx.c
739
txq->tx_ring.avail = hfi1_ipoib_ring_hwat(txq);
drivers/infiniband/hw/hfi1/ipoib_tx.c
740
tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
742
hfi1_txreq_from_idx(tx_ring, j)->sdma_hdr =
drivers/infiniband/hw/hfi1/ipoib_tx.c
745
if (!hfi1_txreq_from_idx(tx_ring, j)->sdma_hdr)
drivers/infiniband/hw/hfi1/ipoib_tx.c
759
tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
76
txq->tx_ring.max_items) >> 1;
drivers/infiniband/hw/hfi1/ipoib_tx.c
761
kfree(hfi1_txreq_from_idx(tx_ring, j)->sdma_hdr);
drivers/infiniband/hw/hfi1/ipoib_tx.c
762
kvfree(tx_ring->items);
drivers/infiniband/hw/hfi1/ipoib_tx.c
783
txq->tx_ring.complete_txreqs++;
drivers/infiniband/hw/hfi1/ipoib_tx.c
790
hfi1_ipoib_txreqs(txq->tx_ring.sent_txreqs,
drivers/infiniband/hw/hfi1/ipoib_tx.c
791
txq->tx_ring.complete_txreqs));
drivers/infiniband/hw/hfi1/ipoib_tx.c
800
struct hfi1_ipoib_circ_buf *tx_ring = &txq->tx_ring;
drivers/infiniband/hw/hfi1/ipoib_tx.c
807
for (j = 0; j < tx_ring->max_items; j++)
drivers/infiniband/hw/hfi1/ipoib_tx.c
808
kfree(hfi1_txreq_from_idx(tx_ring, j)->sdma_hdr);
drivers/infiniband/hw/hfi1/ipoib_tx.c
809
kvfree(tx_ring->items);
drivers/infiniband/hw/hfi1/ipoib_tx.c
81
++txq->tx_ring.sent_txreqs;
drivers/infiniband/hw/hfi1/ipoib_tx.c
83
!atomic_xchg(&txq->tx_ring.ring_full, 1)) {
drivers/infiniband/hw/hfi1/ipoib_tx.c
849
atomic_read(&txq->tx_ring.stops),
drivers/infiniband/hw/hfi1/ipoib_tx.c
850
atomic_read(&txq->tx_ring.no_desc),
drivers/infiniband/hw/hfi1/ipoib_tx.c
851
atomic_read(&txq->tx_ring.ring_full));
drivers/infiniband/hw/hfi1/ipoib_tx.c
857
txq->tx_ring.sent_txreqs, txq->tx_ring.complete_txreqs,
drivers/infiniband/hw/hfi1/ipoib_tx.c
860
dev->tx_queue_len, txq->tx_ring.max_items);
drivers/infiniband/hw/hfi1/ipoib_tx.c
862
txq->tx_ring.head, txq->tx_ring.tail);
drivers/infiniband/hw/hfi1/sdma.c
1289
kvfree(sde->tx_ring);
drivers/infiniband/hw/hfi1/sdma.c
1290
sde->tx_ring = NULL;
drivers/infiniband/hw/hfi1/sdma.c
1436
sde->tx_ring =
drivers/infiniband/hw/hfi1/sdma.c
1440
if (!sde->tx_ring)
drivers/infiniband/hw/hfi1/sdma.c
1793
sde->tx_ring[sde->tx_head++ & sde->sdma_mask] = NULL;
drivers/infiniband/hw/hfi1/sdma.c
2285
WARN_ON_ONCE(sde->tx_ring[sde->tx_tail & sde->sdma_mask]);
drivers/infiniband/hw/hfi1/sdma.c
2287
sde->tx_ring[sde->tx_tail++ & sde->sdma_mask] = tx;
drivers/infiniband/hw/hfi1/sdma.c
531
return sde->tx_ring[sde->tx_head & sde->sdma_mask];
drivers/infiniband/hw/hfi1/sdma.c
556
sde->tx_ring[sde->tx_head++ & sde->sdma_mask] = NULL;
drivers/infiniband/hw/hfi1/sdma.h
288
struct sdma_txreq **tx_ring;
drivers/infiniband/hw/hfi1/trace_tx.h
916
__entry->head = txq->tx_ring.head;
drivers/infiniband/hw/hfi1/trace_tx.h
917
__entry->tail = txq->tx_ring.tail;
drivers/infiniband/hw/hfi1/trace_tx.h
920
txq->tx_ring.sent_txreqs -
drivers/infiniband/hw/hfi1/trace_tx.h
921
txq->tx_ring.complete_txreqs;
drivers/infiniband/hw/hfi1/trace_tx.h
923
__entry->stops = atomic_read(&txq->tx_ring.stops);
drivers/infiniband/hw/hfi1/trace_tx.h
924
__entry->no_desc = atomic_read(&txq->tx_ring.no_desc);
drivers/infiniband/hw/mlx4/mad.c
1416
sqp_mad = (struct mlx4_mad_snd_buf *) (sqp->tx_ring[wire_tx_ix].buf.addr);
drivers/infiniband/hw/mlx4/mad.c
1417
kfree(sqp->tx_ring[wire_tx_ix].ah);
drivers/infiniband/hw/mlx4/mad.c
1418
sqp->tx_ring[wire_tx_ix].ah = ah;
drivers/infiniband/hw/mlx4/mad.c
1420
sqp->tx_ring[wire_tx_ix].buf.map,
drivers/infiniband/hw/mlx4/mad.c
1427
sqp->tx_ring[wire_tx_ix].buf.map,
drivers/infiniband/hw/mlx4/mad.c
1431
list.addr = sqp->tx_ring[wire_tx_ix].buf.map;
drivers/infiniband/hw/mlx4/mad.c
1454
sqp->tx_ring[wire_tx_ix].ah = NULL;
drivers/infiniband/hw/mlx4/mad.c
1619
tun_qp->tx_ring = kzalloc_objs(struct mlx4_ib_tun_tx_buf, nmbr_bufs);
drivers/infiniband/hw/mlx4/mad.c
1620
if (!tun_qp->tx_ring) {
drivers/infiniband/hw/mlx4/mad.c
1649
tun_qp->tx_ring[i].buf.addr =
drivers/infiniband/hw/mlx4/mad.c
1651
if (!tun_qp->tx_ring[i].buf.addr)
drivers/infiniband/hw/mlx4/mad.c
1653
tun_qp->tx_ring[i].buf.map =
drivers/infiniband/hw/mlx4/mad.c
1655
tun_qp->tx_ring[i].buf.addr,
drivers/infiniband/hw/mlx4/mad.c
1659
tun_qp->tx_ring[i].buf.map)) {
drivers/infiniband/hw/mlx4/mad.c
1660
kfree(tun_qp->tx_ring[i].buf.addr);
drivers/infiniband/hw/mlx4/mad.c
1663
tun_qp->tx_ring[i].ah = NULL;
drivers/infiniband/hw/mlx4/mad.c
1675
ib_dma_unmap_single(ctx->ib_dev, tun_qp->tx_ring[i].buf.map,
drivers/infiniband/hw/mlx4/mad.c
1677
kfree(tun_qp->tx_ring[i].buf.addr);
drivers/infiniband/hw/mlx4/mad.c
1687
kfree(tun_qp->tx_ring);
drivers/infiniband/hw/mlx4/mad.c
1688
tun_qp->tx_ring = NULL;
drivers/infiniband/hw/mlx4/mad.c
1722
ib_dma_unmap_single(ctx->ib_dev, tun_qp->tx_ring[i].buf.map,
drivers/infiniband/hw/mlx4/mad.c
1724
kfree(tun_qp->tx_ring[i].buf.addr);
drivers/infiniband/hw/mlx4/mad.c
1725
if (tun_qp->tx_ring[i].ah)
drivers/infiniband/hw/mlx4/mad.c
1726
rdma_destroy_ah(tun_qp->tx_ring[i].ah, 0);
drivers/infiniband/hw/mlx4/mad.c
1728
kfree(tun_qp->tx_ring);
drivers/infiniband/hw/mlx4/mad.c
1755
rdma_destroy_ah(tun_qp->tx_ring[wc.wr_id &
drivers/infiniband/hw/mlx4/mad.c
1757
tun_qp->tx_ring[wc.wr_id & (MLX4_NUM_TUNNEL_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
1772
rdma_destroy_ah(tun_qp->tx_ring[wc.wr_id &
drivers/infiniband/hw/mlx4/mad.c
1774
tun_qp->tx_ring[wc.wr_id & (MLX4_NUM_TUNNEL_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
1910
kfree(sqp->tx_ring[wc.wr_id &
drivers/infiniband/hw/mlx4/mad.c
1912
sqp->tx_ring[wc.wr_id & (MLX4_NUM_WIRE_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
1939
kfree(sqp->tx_ring[wc.wr_id &
drivers/infiniband/hw/mlx4/mad.c
1941
sqp->tx_ring[wc.wr_id & (MLX4_NUM_WIRE_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
603
tun_mad = (struct mlx4_rcv_tunnel_mad *) (tun_qp->tx_ring[tun_tx_ix].buf.addr);
drivers/infiniband/hw/mlx4/mad.c
604
if (tun_qp->tx_ring[tun_tx_ix].ah)
drivers/infiniband/hw/mlx4/mad.c
605
rdma_destroy_ah(tun_qp->tx_ring[tun_tx_ix].ah, 0);
drivers/infiniband/hw/mlx4/mad.c
606
tun_qp->tx_ring[tun_tx_ix].ah = ah;
drivers/infiniband/hw/mlx4/mad.c
608
tun_qp->tx_ring[tun_tx_ix].buf.map,
drivers/infiniband/hw/mlx4/mad.c
650
tun_qp->tx_ring[tun_tx_ix].buf.map,
drivers/infiniband/hw/mlx4/mad.c
654
list.addr = tun_qp->tx_ring[tun_tx_ix].buf.map;
drivers/infiniband/hw/mlx4/mad.c
676
tun_qp->tx_ring[tun_tx_ix].ah = NULL;
drivers/infiniband/hw/mlx4/mlx4_ib.h
463
struct mlx4_ib_tun_tx_buf *tx_ring;
drivers/infiniband/ulp/ipoib/ipoib.h
251
struct ipoib_tx_buf *tx_ring;
drivers/infiniband/ulp/ipoib/ipoib.h
373
struct ipoib_tx_buf *tx_ring;
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1148
p->tx_ring = vzalloc(array_size(ipoib_sendq_size, sizeof(*p->tx_ring)));
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1149
if (!p->tx_ring) {
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1194
vfree(p->tx_ring);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1211
if (p->tx_ring) {
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1228
tx_req = &p->tx_ring[p->tx_tail & (ipoib_sendq_size - 1)];
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1245
vfree(p->tx_ring);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
750
tx_req = &tx->tx_ring[tx->tx_head & (ipoib_sendq_size - 1)];
drivers/infiniband/ulp/ipoib/ipoib_cm.c
811
tx_req = &tx->tx_ring[wr_id];
drivers/infiniband/ulp/ipoib/ipoib_ib.c
401
tx_req = &priv->tx_ring[wr_id];
drivers/infiniband/ulp/ipoib/ipoib_ib.c
651
tx_req = &priv->tx_ring[priv->tx_head & (ipoib_sendq_size - 1)];
drivers/infiniband/ulp/ipoib/ipoib_ib.c
837
tx_req = &priv->tx_ring[priv->tx_tail &
drivers/infiniband/ulp/ipoib/ipoib_main.c
1762
vfree(priv->tx_ring);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1765
priv->tx_ring = NULL;
drivers/infiniband/ulp/ipoib/ipoib_main.c
1780
priv->tx_ring = vzalloc(array_size(ipoib_sendq_size,
drivers/infiniband/ulp/ipoib/ipoib_main.c
1781
sizeof(*priv->tx_ring)));
drivers/infiniband/ulp/ipoib/ipoib_main.c
1782
if (!priv->tx_ring) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
1805
vfree(priv->tx_ring);
drivers/infiniband/ulp/srp/ib_srp.c
1374
list_add(&ch->tx_ring[j]->list, &ch->free_tx);
drivers/infiniband/ulp/srp/ib_srp.c
2263
ch->tx_ring = kzalloc_objs(*ch->tx_ring, target->queue_size);
drivers/infiniband/ulp/srp/ib_srp.c
2264
if (!ch->tx_ring)
drivers/infiniband/ulp/srp/ib_srp.c
2276
ch->tx_ring[i] = srp_alloc_iu(target->srp_host,
drivers/infiniband/ulp/srp/ib_srp.c
2279
if (!ch->tx_ring[i])
drivers/infiniband/ulp/srp/ib_srp.c
2282
list_add(&ch->tx_ring[i]->list, &ch->free_tx);
drivers/infiniband/ulp/srp/ib_srp.c
2290
srp_free_iu(target->srp_host, ch->tx_ring[i]);
drivers/infiniband/ulp/srp/ib_srp.c
2295
kfree(ch->tx_ring);
drivers/infiniband/ulp/srp/ib_srp.c
2296
ch->tx_ring = NULL;
drivers/infiniband/ulp/srp/ib_srp.c
688
if (ch->tx_ring) {
drivers/infiniband/ulp/srp/ib_srp.c
690
srp_free_iu(target->srp_host, ch->tx_ring[i]);
drivers/infiniband/ulp/srp/ib_srp.c
691
kfree(ch->tx_ring);
drivers/infiniband/ulp/srp/ib_srp.c
692
ch->tx_ring = NULL;
drivers/infiniband/ulp/srp/ib_srp.h
185
struct srp_iu **tx_ring;
drivers/net/can/c_can/c_can_main.c
430
const struct c_can_tx_ring *tx_ring)
drivers/net/can/c_can/c_can_main.c
432
if (c_can_get_tx_free(priv, tx_ring) > 0)
drivers/net/can/c_can/c_can_main.c
440
if (c_can_get_tx_free(priv, tx_ring) == 0) {
drivers/net/can/c_can/c_can_main.c
443
tx_ring->head, tx_ring->tail,
drivers/net/can/c_can/c_can_main.c
444
tx_ring->head - tx_ring->tail);
drivers/net/can/c_can/c_can_main.c
457
struct c_can_tx_ring *tx_ring = &priv->tx;
drivers/net/can/c_can/c_can_main.c
463
if (c_can_tx_busy(priv, tx_ring))
drivers/net/can/c_can/c_can_main.c
466
idx = c_can_get_tx_head(tx_ring);
drivers/net/can/c_can/c_can_main.c
467
tx_ring->head++;
drivers/net/can/c_can/c_can_main.c
468
if (c_can_get_tx_free(priv, tx_ring) == 0)
drivers/net/can/c_can/c_can_main.c
471
if (idx < c_can_get_tx_tail(tx_ring))
drivers/net/can/c_can/c_can_main.c
592
struct c_can_tx_ring *tx_ring = &priv->tx;
drivers/net/can/c_can/c_can_main.c
624
tx_ring->head = 0;
drivers/net/can/c_can/c_can_main.c
625
tx_ring->tail = 0;
drivers/net/can/c_can/c_can_main.c
723
struct c_can_tx_ring *tx_ring = &priv->tx;
drivers/net/can/c_can/c_can_main.c
750
tx_ring->tail += pkts;
drivers/net/can/c_can/c_can_main.c
751
if (c_can_get_tx_free(priv, tx_ring)) {
drivers/net/can/c_can/c_can_main.c
762
tail = c_can_get_tx_tail(tx_ring);
drivers/net/can/c_can/c_can_main.c
764
u8 head = c_can_get_tx_head(tx_ring);
drivers/net/can/spi/mcp251xfd/mcp251xfd-chip-fifo.c
65
const struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-chip-fifo.c
72
tx_ring->obj_num - 1) |
drivers/net/can/spi/mcp251xfd/mcp251xfd-chip-fifo.c
83
tx_ring->obj_num - 1) |
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
1267
struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
1280
tx_tail = mcp251xfd_get_tx_tail(tx_ring);
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
1281
offset = (nr - chip_tx_tail) & (tx_ring->obj_num - 1);
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
1293
addr, nr, tx_ring->tail, tx_tail, chip_tx_tail,
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
1302
addr, nr, tx_ring->tail, tx_tail, offset);
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
1305
tx_obj = &tx_ring->obj[nr];
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
171
struct mcp251xfd_tx_ring *tx_ring;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
178
tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
179
tx_ring->head = 0;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
180
tx_ring->tail = 0;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
181
tx_ring->base = *base;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
182
tx_ring->nr = 0;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
183
tx_ring->fifo_nr = *fifo_nr;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
185
*base = mcp251xfd_get_tx_obj_addr(tx_ring, tx_ring->obj_num);
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
189
addr = MCP251XFD_REG_FIFOCON(tx_ring->fifo_nr);
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
191
len = mcp251xfd_cmd_prepare_write_reg(priv, &tx_ring->rts_buf,
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
194
mcp251xfd_for_each_tx_obj(tx_ring, tx_obj, i)
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
195
mcp251xfd_tx_ring_init_tx_obj(priv, tx_ring, tx_obj, len, i);
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
473
struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
499
tx_ring->obj_num = layout.cur_tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
513
tx_ring->obj_num_shift_to_u8 = BITS_PER_TYPE(tx_ring->obj_num) -
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
514
ilog2(tx_ring->obj_num);
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
515
tx_ring->obj_size = tx_obj_size;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
119
const struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
120
const u8 shift = tx_ring->obj_num_shift_to_u8;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
134
mcp251xfd_get_tx_free(tx_ring) == 0) {
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
135
*len_p = tx_ring->obj_num;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
150
BUILD_BUG_ON(sizeof(tx_ring->obj_num) != sizeof(chip_tx_tail));
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
151
BUILD_BUG_ON(sizeof(tx_ring->obj_num) != sizeof(tail));
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
152
BUILD_BUG_ON(sizeof(tx_ring->obj_num) != sizeof(len));
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
174
mcp251xfd_get_tx_free(tx_ring) == 0)
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
175
len = tx_ring->obj_num;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
187
const struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
191
(offset > tx_ring->obj_num ||
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
192
len > tx_ring->obj_num ||
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
193
offset + len > tx_ring->obj_num)) {
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
196
tx_ring->obj_num, offset, len);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
257
struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c
277
tx_ring->tail += len;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
135
struct mcp251xfd_tx_ring *tx_ring,
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
143
tx_ring->head--;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
145
tx_head = mcp251xfd_get_tx_head(tx_ring);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
159
struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
164
mcp251xfd_tx_failure_drop(priv, tx_ring, err);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
174
struct mcp251xfd_tx_ring *tx_ring)
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
176
if (mcp251xfd_get_tx_free(tx_ring) > 0)
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
184
if (mcp251xfd_get_tx_free(tx_ring) == 0) {
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
187
tx_ring->head, tx_ring->tail,
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
188
tx_ring->head - tx_ring->tail);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
207
struct mcp251xfd_tx_ring *tx_ring = priv->tx;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
21
mcp251xfd_tx_obj *mcp251xfd_get_tx_obj_next(struct mcp251xfd_tx_ring *tx_ring)
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
216
if (mcp251xfd_tx_busy(priv, tx_ring) ||
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
220
tx_obj = mcp251xfd_get_tx_obj_next(tx_ring);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
221
mcp251xfd_tx_obj_from_skb(priv, tx_obj, skb, tx_ring->head);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
224
tx_head = mcp251xfd_get_tx_head(tx_ring);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
225
tx_ring->head++;
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
226
if (mcp251xfd_get_tx_free(tx_ring) == 0)
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
240
mcp251xfd_tx_failure_drop(priv, tx_ring, err);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
25
tx_head = mcp251xfd_get_tx_head(tx_ring);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c
27
return &tx_ring->obj[tx_head];
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
916
mcp251xfd_get_tx_nr_by_addr(const struct mcp251xfd_tx_ring *tx_ring, u8 *nr,
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
919
if (addr < mcp251xfd_get_tx_obj_addr(tx_ring, 0) ||
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
920
addr >= mcp251xfd_get_tx_obj_addr(tx_ring, tx_ring->obj_num))
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
923
*nr = (addr - mcp251xfd_get_tx_obj_addr(tx_ring, 0)) /
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
924
tx_ring->obj_size;
drivers/net/ethernet/3com/3c515.c
1008
prev_entry = &vp->tx_ring[(vp->cur_tx - 1) % TX_RING_SIZE];
drivers/net/ethernet/3com/3c515.c
1016
vp->tx_ring[entry].next = 0;
drivers/net/ethernet/3com/3c515.c
1017
vp->tx_ring[entry].addr = isa_virt_to_bus(skb->data);
drivers/net/ethernet/3com/3c515.c
1018
vp->tx_ring[entry].length = skb->len | 0x80000000;
drivers/net/ethernet/3com/3c515.c
1019
vp->tx_ring[entry].status = skb->len | 0x80000000;
drivers/net/ethernet/3com/3c515.c
1028
prev_entry->next = isa_virt_to_bus(&vp->tx_ring[entry]);
drivers/net/ethernet/3com/3c515.c
1030
outl(isa_virt_to_bus(&vp->tx_ring[entry]),
drivers/net/ethernet/3com/3c515.c
1164
if (inl(ioaddr + DownListPtr) == isa_virt_to_bus(&lp->tx_ring[entry]))
drivers/net/ethernet/3com/3c515.c
299
struct boom_tx_desc tx_ring[TX_RING_SIZE];
drivers/net/ethernet/3com/3c515.c
969
&vp->tx_ring[0]);
drivers/net/ethernet/3com/3c515.c
972
&vp->tx_ring[i],
drivers/net/ethernet/3com/3c515.c
973
vp->tx_ring[i].length, vp->tx_ring[i].status);
drivers/net/ethernet/3com/3c59x.c
1218
vp->tx_ring = (struct boom_tx_desc *)(vp->rx_ring + RX_RING_SIZE);
drivers/net/ethernet/3com/3c59x.c
2118
struct boom_tx_desc *prev_entry = &vp->tx_ring[(vp->cur_tx-1) % TX_RING_SIZE];
drivers/net/ethernet/3com/3c59x.c
2147
vp->tx_ring[entry].next = 0;
drivers/net/ethernet/3com/3c59x.c
2150
vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded);
drivers/net/ethernet/3com/3c59x.c
2152
vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded | AddTCPChksum | AddUDPChksum);
drivers/net/ethernet/3com/3c59x.c
2160
vp->tx_ring[entry].frag[0].addr = cpu_to_le32(dma_addr);
drivers/net/ethernet/3com/3c59x.c
2161
vp->tx_ring[entry].frag[0].length = cpu_to_le32(skb->len | LAST_FRAG);
drivers/net/ethernet/3com/3c59x.c
2170
vp->tx_ring[entry].frag[0].addr = cpu_to_le32(dma_addr);
drivers/net/ethernet/3com/3c59x.c
2171
vp->tx_ring[entry].frag[0].length = cpu_to_le32(skb_headlen(skb));
drivers/net/ethernet/3com/3c59x.c
2183
le32_to_cpu(vp->tx_ring[entry].frag[i+1].addr),
drivers/net/ethernet/3com/3c59x.c
2184
le32_to_cpu(vp->tx_ring[entry].frag[i+1].length),
drivers/net/ethernet/3com/3c59x.c
2188
le32_to_cpu(vp->tx_ring[entry].frag[0].addr),
drivers/net/ethernet/3com/3c59x.c
2189
le32_to_cpu(vp->tx_ring[entry].frag[0].length),
drivers/net/ethernet/3com/3c59x.c
2195
vp->tx_ring[entry].frag[i+1].addr =
drivers/net/ethernet/3com/3c59x.c
2199
vp->tx_ring[entry].frag[i+1].length = cpu_to_le32(skb_frag_size(frag)|LAST_FRAG);
drivers/net/ethernet/3com/3c59x.c
2201
vp->tx_ring[entry].frag[i+1].length = cpu_to_le32(skb_frag_size(frag));
drivers/net/ethernet/3com/3c59x.c
2208
vp->tx_ring[entry].addr = cpu_to_le32(dma_addr);
drivers/net/ethernet/3com/3c59x.c
2209
vp->tx_ring[entry].length = cpu_to_le32(skb->len | LAST_FRAG);
drivers/net/ethernet/3com/3c59x.c
2210
vp->tx_ring[entry].status = cpu_to_le32(skb->len | TxIntrUploaded);
drivers/net/ethernet/3com/3c59x.c
2428
if ((vp->tx_ring[entry].status & DN_COMPLETE) == 0)
drivers/net/ethernet/3com/3c59x.c
2437
le32_to_cpu(vp->tx_ring[entry].frag[0].addr),
drivers/net/ethernet/3com/3c59x.c
2438
le32_to_cpu(vp->tx_ring[entry].frag[0].length)&0xFFF,
drivers/net/ethernet/3com/3c59x.c
2443
le32_to_cpu(vp->tx_ring[entry].frag[i].addr),
drivers/net/ethernet/3com/3c59x.c
2444
le32_to_cpu(vp->tx_ring[entry].frag[i].length)&0xFFF,
drivers/net/ethernet/3com/3c59x.c
2448
le32_to_cpu(vp->tx_ring[entry].addr), skb->len, DMA_TO_DEVICE);
drivers/net/ethernet/3com/3c59x.c
2772
le32_to_cpu(vp->tx_ring[i].frag[k].addr),
drivers/net/ethernet/3com/3c59x.c
2773
le32_to_cpu(vp->tx_ring[i].frag[k].length)&0xFFF,
drivers/net/ethernet/3com/3c59x.c
2776
dma_unmap_single(vp->gendev, le32_to_cpu(vp->tx_ring[i].addr), skb->len, DMA_TO_DEVICE);
drivers/net/ethernet/3com/3c59x.c
2804
&vp->tx_ring[vp->dirty_tx % TX_RING_SIZE]);
drivers/net/ethernet/3com/3c59x.c
2810
length = le32_to_cpu(vp->tx_ring[i].frag[0].length);
drivers/net/ethernet/3com/3c59x.c
2812
length = le32_to_cpu(vp->tx_ring[i].length);
drivers/net/ethernet/3com/3c59x.c
2815
i, &vp->tx_ring[i], length,
drivers/net/ethernet/3com/3c59x.c
2816
le32_to_cpu(vp->tx_ring[i].status));
drivers/net/ethernet/3com/3c59x.c
598
struct boom_tx_desc* tx_ring;
drivers/net/ethernet/actions/owl-emac.c
1012
(u32)(priv->tx_ring.descs_dma));
drivers/net/ethernet/actions/owl-emac.c
1501
ret = owl_emac_ring_alloc(dev, &priv->tx_ring, OWL_EMAC_TX_RING_SIZE);
drivers/net/ethernet/actions/owl-emac.c
220
struct owl_emac_ring *ring = &priv->tx_ring;
drivers/net/ethernet/actions/owl-emac.c
262
struct owl_emac_ring *ring = &priv->tx_ring;
drivers/net/ethernet/actions/owl-emac.c
492
struct owl_emac_ring *ring = &priv->tx_ring;
drivers/net/ethernet/actions/owl-emac.c
570
struct owl_emac_ring *ring = &priv->tx_ring;
drivers/net/ethernet/actions/owl-emac.c
633
struct owl_emac_ring *ring = &priv->tx_ring;
drivers/net/ethernet/actions/owl-emac.c
697
struct owl_emac_ring *ring = &priv->tx_ring;
drivers/net/ethernet/actions/owl-emac.h
262
struct owl_emac_ring tx_ring;
drivers/net/ethernet/adaptec/starfire.c
1235
np->tx_ring[entry].addr = cpu_to_dma(np->tx_info[entry].mapping);
drivers/net/ethernet/adaptec/starfire.c
1236
np->tx_ring[entry].status = cpu_to_le32(status);
drivers/net/ethernet/adaptec/starfire.c
1947
i, le32_to_cpu(np->tx_ring[i].status),
drivers/net/ethernet/adaptec/starfire.c
1948
(long long) dma_to_cpu(np->tx_ring[i].addr),
drivers/net/ethernet/adaptec/starfire.c
518
starfire_tx_desc *tx_ring;
drivers/net/ethernet/adaptec/starfire.c
895
np->tx_ring = (void *) np->rx_done_q + rx_done_q_size;
drivers/net/ethernet/adaptec/starfire.c
897
np->rx_ring = (void *) np->tx_ring + tx_ring_size;
drivers/net/ethernet/agere/et131x.c
1639
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
1642
writel(upper_32_bits(tx_ring->tx_desc_ring_pa), &txdma->pr_base_hi);
drivers/net/ethernet/agere/et131x.c
1643
writel(lower_32_bits(tx_ring->tx_desc_ring_pa), &txdma->pr_base_lo);
drivers/net/ethernet/agere/et131x.c
1649
writel(upper_32_bits(tx_ring->tx_status_pa), &txdma->dma_wb_base_hi);
drivers/net/ethernet/agere/et131x.c
1650
writel(lower_32_bits(tx_ring->tx_status_pa), &txdma->dma_wb_base_lo);
drivers/net/ethernet/agere/et131x.c
1652
*tx_ring->tx_status = 0;
drivers/net/ethernet/agere/et131x.c
1655
tx_ring->send_idx = 0;
drivers/net/ethernet/agere/et131x.c
1752
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
1753
struct tcb *tcb = tx_ring->tcb_ring;
drivers/net/ethernet/agere/et131x.c
1755
tx_ring->tcb_qhead = tcb;
drivers/net/ethernet/agere/et131x.c
1765
tx_ring->tcb_qtail = tcb;
drivers/net/ethernet/agere/et131x.c
1768
tx_ring->send_head = NULL;
drivers/net/ethernet/agere/et131x.c
1769
tx_ring->send_tail = NULL;
drivers/net/ethernet/agere/et131x.c
2357
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2360
tx_ring->tcb_ring = kzalloc_objs(struct tcb, NUM_TCB,
drivers/net/ethernet/agere/et131x.c
2362
if (!tx_ring->tcb_ring)
drivers/net/ethernet/agere/et131x.c
2366
tx_ring->tx_desc_ring = dma_alloc_coherent(&adapter->pdev->dev,
drivers/net/ethernet/agere/et131x.c
2368
&tx_ring->tx_desc_ring_pa,
drivers/net/ethernet/agere/et131x.c
2370
if (!tx_ring->tx_desc_ring) {
drivers/net/ethernet/agere/et131x.c
2376
tx_ring->tx_status = dma_alloc_coherent(&adapter->pdev->dev,
drivers/net/ethernet/agere/et131x.c
2378
&tx_ring->tx_status_pa,
drivers/net/ethernet/agere/et131x.c
2380
if (!tx_ring->tx_status) {
drivers/net/ethernet/agere/et131x.c
2391
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2393
if (tx_ring->tx_desc_ring) {
drivers/net/ethernet/agere/et131x.c
2398
tx_ring->tx_desc_ring,
drivers/net/ethernet/agere/et131x.c
2399
tx_ring->tx_desc_ring_pa);
drivers/net/ethernet/agere/et131x.c
2400
tx_ring->tx_desc_ring = NULL;
drivers/net/ethernet/agere/et131x.c
2404
if (tx_ring->tx_status) {
drivers/net/ethernet/agere/et131x.c
2407
tx_ring->tx_status,
drivers/net/ethernet/agere/et131x.c
2408
tx_ring->tx_status_pa);
drivers/net/ethernet/agere/et131x.c
2410
tx_ring->tx_status = NULL;
drivers/net/ethernet/agere/et131x.c
2413
kfree(tx_ring->tcb_ring);
drivers/net/ethernet/agere/et131x.c
2430
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2514
if (++tx_ring->since_irq == PARM_TX_NUM_BUFS_DEF) {
drivers/net/ethernet/agere/et131x.c
2518
tx_ring->since_irq = 0;
drivers/net/ethernet/agere/et131x.c
2529
tcb->index_start = tx_ring->send_idx;
drivers/net/ethernet/agere/et131x.c
2532
thiscopy = NUM_DESC_PER_RING_TX - INDEX10(tx_ring->send_idx);
drivers/net/ethernet/agere/et131x.c
2541
memcpy(tx_ring->tx_desc_ring + INDEX10(tx_ring->send_idx),
drivers/net/ethernet/agere/et131x.c
2545
add_10bit(&tx_ring->send_idx, thiscopy);
drivers/net/ethernet/agere/et131x.c
2547
if (INDEX10(tx_ring->send_idx) == 0 ||
drivers/net/ethernet/agere/et131x.c
2548
INDEX10(tx_ring->send_idx) == NUM_DESC_PER_RING_TX) {
drivers/net/ethernet/agere/et131x.c
2549
tx_ring->send_idx &= ~ET_DMA10_MASK;
drivers/net/ethernet/agere/et131x.c
2550
tx_ring->send_idx ^= ET_DMA10_WRAP;
drivers/net/ethernet/agere/et131x.c
2554
memcpy(tx_ring->tx_desc_ring,
drivers/net/ethernet/agere/et131x.c
2558
add_10bit(&tx_ring->send_idx, remainder);
drivers/net/ethernet/agere/et131x.c
2561
if (INDEX10(tx_ring->send_idx) == 0) {
drivers/net/ethernet/agere/et131x.c
2562
if (tx_ring->send_idx)
drivers/net/ethernet/agere/et131x.c
2567
tcb->index = tx_ring->send_idx - 1;
drivers/net/ethernet/agere/et131x.c
2572
if (tx_ring->send_tail)
drivers/net/ethernet/agere/et131x.c
2573
tx_ring->send_tail->next = tcb;
drivers/net/ethernet/agere/et131x.c
2575
tx_ring->send_head = tcb;
drivers/net/ethernet/agere/et131x.c
2577
tx_ring->send_tail = tcb;
drivers/net/ethernet/agere/et131x.c
2581
tx_ring->used++;
drivers/net/ethernet/agere/et131x.c
2586
writel(tx_ring->send_idx, &adapter->regs->txdma.service_request);
drivers/net/ethernet/agere/et131x.c
2624
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2632
tcb = tx_ring->tcb_qhead;
drivers/net/ethernet/agere/et131x.c
2639
tx_ring->tcb_qhead = tcb->next;
drivers/net/ethernet/agere/et131x.c
2641
if (tx_ring->tcb_qhead == NULL)
drivers/net/ethernet/agere/et131x.c
2642
tx_ring->tcb_qtail = NULL;
drivers/net/ethernet/agere/et131x.c
2654
if (tx_ring->tcb_qtail)
drivers/net/ethernet/agere/et131x.c
2655
tx_ring->tcb_qtail->next = tcb;
drivers/net/ethernet/agere/et131x.c
2658
tx_ring->tcb_qhead = tcb;
drivers/net/ethernet/agere/et131x.c
2660
tx_ring->tcb_qtail = tcb;
drivers/net/ethernet/agere/et131x.c
2664
WARN_ON(tx_ring->used > NUM_TCB);
drivers/net/ethernet/agere/et131x.c
2675
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2686
desc = tx_ring->tx_desc_ring +
drivers/net/ethernet/agere/et131x.c
2702
} while (desc != tx_ring->tx_desc_ring + INDEX10(tcb->index));
drivers/net/ethernet/agere/et131x.c
2714
if (tx_ring->tcb_qtail)
drivers/net/ethernet/agere/et131x.c
2715
tx_ring->tcb_qtail->next = tcb;
drivers/net/ethernet/agere/et131x.c
2717
tx_ring->tcb_qhead = tcb;
drivers/net/ethernet/agere/et131x.c
2719
tx_ring->tcb_qtail = tcb;
drivers/net/ethernet/agere/et131x.c
2722
WARN_ON(tx_ring->used < 0);
drivers/net/ethernet/agere/et131x.c
2731
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2736
tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
2741
tx_ring->send_head = next;
drivers/net/ethernet/agere/et131x.c
2744
tx_ring->send_tail = NULL;
drivers/net/ethernet/agere/et131x.c
2746
tx_ring->used--;
drivers/net/ethernet/agere/et131x.c
2755
tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
2762
tx_ring->used = 0;
drivers/net/ethernet/agere/et131x.c
2776
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
2786
tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
2791
tx_ring->used--;
drivers/net/ethernet/agere/et131x.c
2792
tx_ring->send_head = tcb->next;
drivers/net/ethernet/agere/et131x.c
2794
tx_ring->send_tail = NULL;
drivers/net/ethernet/agere/et131x.c
2801
tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
2806
tx_ring->used--;
drivers/net/ethernet/agere/et131x.c
2807
tx_ring->send_head = tcb->next;
drivers/net/ethernet/agere/et131x.c
2809
tx_ring->send_tail = NULL;
drivers/net/ethernet/agere/et131x.c
2816
tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
2820
if (tx_ring->used <= NUM_TCB / 3)
drivers/net/ethernet/agere/et131x.c
3401
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
3428
struct tcb *tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
3799
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
3809
if (tx_ring->used >= NUM_TCB - 1 && !netif_queue_stopped(netdev))
drivers/net/ethernet/agere/et131x.c
3816
if (tx_ring->used >= NUM_TCB)
drivers/net/ethernet/agere/et131x.c
3843
struct tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/agere/et131x.c
3865
tcb = tx_ring->send_head;
drivers/net/ethernet/agere/et131x.c
489
struct tx_ring tx_ring;
drivers/net/ethernet/alteon/acenic.c
1280
ap->tx_ring = (__force struct tx_desc *) regs->Window;
drivers/net/ethernet/alteon/acenic.c
1283
writel(0, (__force void __iomem *)ap->tx_ring + i * 4);
drivers/net/ethernet/alteon/acenic.c
1287
memset(ap->tx_ring, 0,
drivers/net/ethernet/alteon/acenic.c
2325
tx = (__force struct tx_desc __iomem *) &ap->tx_ring[i];
drivers/net/ethernet/alteon/acenic.c
2330
memset(ap->tx_ring + i, 0,
drivers/net/ethernet/alteon/acenic.c
2427
desc = ap->tx_ring + idx;
drivers/net/ethernet/alteon/acenic.c
2449
ace_load_tx_bd(ap, ap->tx_ring + idx, mapping, flagsize, vlan_tag);
drivers/net/ethernet/alteon/acenic.c
2458
desc = ap->tx_ring + idx;
drivers/net/ethernet/alteon/acenic.c
727
if (ap->tx_ring != NULL && !ACE_IS_TIGON_I(ap)) {
drivers/net/ethernet/alteon/acenic.c
729
dma_free_coherent(&ap->pdev->dev, size, ap->tx_ring,
drivers/net/ethernet/alteon/acenic.c
732
ap->tx_ring = NULL;
drivers/net/ethernet/alteon/acenic.c
787
ap->tx_ring = dma_alloc_coherent(&ap->pdev->dev, size,
drivers/net/ethernet/alteon/acenic.c
790
if (ap->tx_ring == NULL)
drivers/net/ethernet/alteon/acenic.h
648
struct tx_desc *tx_ring;
drivers/net/ethernet/altera/altera_tse.h
424
struct tse_buffer *tx_ring;
drivers/net/ethernet/altera/altera_tse_main.c
266
priv->tx_ring = kzalloc_objs(struct tse_buffer, tx_descs);
drivers/net/ethernet/altera/altera_tse_main.c
267
if (!priv->tx_ring)
drivers/net/ethernet/altera/altera_tse_main.c
288
kfree(priv->tx_ring);
drivers/net/ethernet/altera/altera_tse_main.c
306
tse_free_tx_buffer(priv, &priv->tx_ring[i]);
drivers/net/ethernet/altera/altera_tse_main.c
309
kfree(priv->tx_ring);
drivers/net/ethernet/altera/altera_tse_main.c
442
tx_buff = &priv->tx_ring[entry];
drivers/net/ethernet/altera/altera_tse_main.c
567
buffer = &priv->tx_ring[entry];
drivers/net/ethernet/amazon/ena/ena_ethtool.c
229
ring = &adapter->tx_ring[i];
drivers/net/ethernet/amazon/ena/ena_ethtool.c
519
adapter->tx_ring[i].smoothed_interval = val;
drivers/net/ethernet/amazon/ena/ena_ethtool.c
626
ring->tx_pending = adapter->tx_ring[0].ring_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1368
void ena_unmask_interrupt(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.c
1371
u32 rx_interval = tx_ring->smoothed_interval;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1387
tx_ring->smoothed_interval,
drivers/net/ethernet/amazon/ena/ena_netdev.c
1390
ena_increase_stat(&tx_ring->tx_stats.unmask_interrupt, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
1391
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1398
ena_com_unmask_intr(tx_ring->ena_com_io_cq, &intr_reg);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1401
void ena_update_ring_numa_node(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.c
1408
if (likely(tx_ring->cpu == cpu))
drivers/net/ethernet/amazon/ena/ena_netdev.c
1411
tx_ring->cpu = cpu;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1417
if (likely(tx_ring->numa_node == numa_node))
drivers/net/ethernet/amazon/ena/ena_netdev.c
1423
ena_com_update_numa_node(tx_ring->ena_com_io_cq, numa_node);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1424
tx_ring->numa_node = numa_node;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1440
struct ena_ring *tx_ring, *rx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1447
tx_ring = ena_napi->tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1450
tx_budget = tx_ring->ring_size / ENA_TX_POLL_BUDGET_DIVIDER;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1452
if (!test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags) ||
drivers/net/ethernet/amazon/ena/ena_netdev.c
1453
test_bit(ENA_FLAG_TRIGGER_RESET, &tx_ring->adapter->flags)) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
1458
tx_work_done = ena_clean_tx_irq(tx_ring, tx_budget);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1468
if (unlikely(!test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags) ||
drivers/net/ethernet/amazon/ena/ena_netdev.c
1469
test_bit(ENA_FLAG_TRIGGER_RESET, &tx_ring->adapter->flags))) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
1489
ena_update_ring_numa_node(tx_ring, rx_ring);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1490
ena_unmask_interrupt(tx_ring, rx_ring);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1498
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1499
tx_ring->tx_stats.napi_comp += napi_comp_call;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1500
tx_ring->tx_stats.tx_poll++;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1501
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
1503
tx_ring->tx_stats.last_napi_jiffies = jiffies;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1773
struct ena_ring *rx_ring, *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1778
tx_ring = &adapter->tx_ring[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
1789
napi->tx_ring = tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1893
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1900
tx_ring = &adapter->tx_ring[qid];
drivers/net/ethernet/amazon/ena/ena_netdev.c
1910
ctx.queue_size = tx_ring->ring_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1911
ctx.numa_node = tx_ring->numa_node;
drivers/net/ethernet/amazon/ena/ena_netdev.c
1922
&tx_ring->ena_com_io_sq,
drivers/net/ethernet/amazon/ena/ena_netdev.c
1923
&tx_ring->ena_com_io_cq);
drivers/net/ethernet/amazon/ena/ena_netdev.c
193
txr = &adapter->tx_ring[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
1932
ena_com_update_numa_node(tx_ring->ena_com_io_cq, ctx.numa_node);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2040
adapter->tx_ring[i].ring_size = new_tx_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2114
cur_tx_ring_size = adapter->tx_ring[0].ring_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2194
ena_unmask_interrupt(&adapter->tx_ring[i],
drivers/net/ethernet/amazon/ena/ena_netdev.c
223
rxr->xdp_ring = &adapter->tx_ring[i + adapter->num_io_queues];
drivers/net/ethernet/amazon/ena/ena_netdev.c
236
struct ena_ring *tx_ring = &adapter->tx_ring[qid];
drivers/net/ethernet/amazon/ena/ena_netdev.c
240
if (tx_ring->tx_buffer_info) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
246
size = sizeof(struct ena_tx_buffer) * tx_ring->ring_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2472
static int ena_check_and_linearize_skb(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2480
if (num_frags < tx_ring->sgl_size)
drivers/net/ethernet/amazon/ena/ena_netdev.c
2483
if ((num_frags == tx_ring->sgl_size) &&
drivers/net/ethernet/amazon/ena/ena_netdev.c
2484
(header_len < tx_ring->tx_max_header_size))
drivers/net/ethernet/amazon/ena/ena_netdev.c
2487
ena_increase_stat(&tx_ring->tx_stats.linearize, 1, &tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
249
tx_ring->tx_buffer_info = vzalloc_node(size, node);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2491
ena_increase_stat(&tx_ring->tx_stats.linearize_failed, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2492
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2498
static int ena_tx_map_skb(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.c
250
if (!tx_ring->tx_buffer_info) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
2504
struct ena_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/amazon/ena/ena_netdev.c
251
tx_ring->tx_buffer_info = vzalloc(size);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2516
if (tx_ring->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
252
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/amazon/ena/ena_netdev.c
2527
push_len = min_t(u32, skb->len, tx_ring->tx_max_header_size);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2529
tx_ring->push_buf_intermediate_buf);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2532
ena_increase_stat(&tx_ring->tx_stats.llq_buffer_copy, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2533
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2540
tx_ring->tx_max_header_size);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2548
dma = dma_map_single(tx_ring->dev, skb->data + push_len,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2550
if (unlikely(dma_mapping_error(tx_ring->dev, dma)))
drivers/net/ethernet/amazon/ena/ena_netdev.c
256
size = sizeof(u16) * tx_ring->ring_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
257
tx_ring->free_ids = vzalloc_node(size, node);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2575
dma = skb_frag_dma_map(tx_ring->dev, frag, delta,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2577
if (unlikely(dma_mapping_error(tx_ring->dev, dma)))
drivers/net/ethernet/amazon/ena/ena_netdev.c
258
if (!tx_ring->free_ids) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
259
tx_ring->free_ids = vzalloc(size);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2590
ena_increase_stat(&tx_ring->tx_stats.dma_mapping_err, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2591
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2597
ena_unmap_tx_buff(tx_ring, tx_info);
drivers/net/ethernet/amazon/ena/ena_netdev.c
260
if (!tx_ring->free_ids)
drivers/net/ethernet/amazon/ena/ena_netdev.c
2608
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2617
tx_ring = &adapter->tx_ring[qid];
drivers/net/ethernet/amazon/ena/ena_netdev.c
2620
rc = ena_check_and_linearize_skb(tx_ring, skb);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2624
next_to_use = tx_ring->next_to_use;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2625
req_id = tx_ring->free_ids[next_to_use];
drivers/net/ethernet/amazon/ena/ena_netdev.c
2626
tx_info = &tx_ring->tx_buffer_info[req_id];
drivers/net/ethernet/amazon/ena/ena_netdev.c
2631
rc = ena_tx_map_skb(tx_ring, tx_info, skb, &push_hdr, &header_len);
drivers/net/ethernet/amazon/ena/ena_netdev.c
264
size = tx_ring->tx_max_header_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2643
ena_tx_csum(&ena_tx_ctx, skb, tx_ring->disable_meta_caching);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2646
tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.c
265
tx_ring->push_buf_intermediate_buf = vzalloc_node(size, node);
drivers/net/ethernet/amazon/ena/ena_netdev.c
266
if (!tx_ring->push_buf_intermediate_buf) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
2660
if (unlikely(!ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2661
tx_ring->sgl_size + 2))) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
2666
ena_increase_stat(&tx_ring->tx_stats.queue_stop, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2667
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
267
tx_ring->push_buf_intermediate_buf = vzalloc(size);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2679
if (ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
drivers/net/ethernet/amazon/ena/ena_netdev.c
268
if (!tx_ring->push_buf_intermediate_buf)
drivers/net/ethernet/amazon/ena/ena_netdev.c
2682
ena_increase_stat(&tx_ring->tx_stats.queue_wakeup, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
2683
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2693
ena_ring_tx_doorbell(tx_ring);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2698
ena_unmap_tx_buff(tx_ring, tx_info);
drivers/net/ethernet/amazon/ena/ena_netdev.c
273
for (i = 0; i < tx_ring->ring_size; i++)
drivers/net/ethernet/amazon/ena/ena_netdev.c
274
tx_ring->free_ids[i] = i;
drivers/net/ethernet/amazon/ena/ena_netdev.c
277
memset(&tx_ring->tx_stats, 0x0, sizeof(tx_ring->tx_stats));
drivers/net/ethernet/amazon/ena/ena_netdev.c
279
tx_ring->next_to_use = 0;
drivers/net/ethernet/amazon/ena/ena_netdev.c
280
tx_ring->next_to_clean = 0;
drivers/net/ethernet/amazon/ena/ena_netdev.c
281
tx_ring->cpu = ena_irq->cpu;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2810
struct ena_ring *rx_ring, *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
282
tx_ring->numa_node = node;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2823
tx_ring = &adapter->tx_ring[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
2826
start = u64_stats_fetch_begin(&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
2827
packets = tx_ring->tx_stats.cnt;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2828
bytes = tx_ring->tx_stats.bytes;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2829
} while (u64_stats_fetch_retry(&tx_ring->syncp, start));
drivers/net/ethernet/amazon/ena/ena_netdev.c
286
vfree(tx_ring->free_ids);
drivers/net/ethernet/amazon/ena/ena_netdev.c
287
tx_ring->free_ids = NULL;
drivers/net/ethernet/amazon/ena/ena_netdev.c
289
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/amazon/ena/ena_netdev.c
290
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/amazon/ena/ena_netdev.c
2900
if (adapter->tx_ring->ring_size)
drivers/net/ethernet/amazon/ena/ena_netdev.c
2901
tx_queue_size = adapter->tx_ring->ring_size;
drivers/net/ethernet/amazon/ena/ena_netdev.c
303
struct ena_ring *tx_ring = &adapter->tx_ring[qid];
drivers/net/ethernet/amazon/ena/ena_netdev.c
305
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/amazon/ena/ena_netdev.c
306
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/amazon/ena/ena_netdev.c
308
vfree(tx_ring->free_ids);
drivers/net/ethernet/amazon/ena/ena_netdev.c
309
tx_ring->free_ids = NULL;
drivers/net/ethernet/amazon/ena/ena_netdev.c
311
vfree(tx_ring->push_buf_intermediate_buf);
drivers/net/ethernet/amazon/ena/ena_netdev.c
312
tx_ring->push_buf_intermediate_buf = NULL;
drivers/net/ethernet/amazon/ena/ena_netdev.c
3317
txr = &adapter->tx_ring[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
3417
struct ena_ring *tx_ring)
drivers/net/ethernet/amazon/ena/ena_netdev.c
3419
struct ena_napi *ena_napi = container_of(tx_ring->napi, struct ena_napi, napi);
drivers/net/ethernet/amazon/ena/ena_netdev.c
3432
for (i = 0; i < tx_ring->ring_size; i++) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
3433
tx_buf = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
3449
tx_ring->qid);
drivers/net/ethernet/amazon/ena/ena_netdev.c
3459
jiffies_to_usecs(jiffies - tx_ring->tx_stats.last_napi_jiffies);
drivers/net/ethernet/amazon/ena/ena_netdev.c
3481
tx_ring->qid, i, time_since_last_napi, napi_scheduled);
drivers/net/ethernet/amazon/ena/ena_netdev.c
3500
ena_increase_stat(&tx_ring->tx_stats.missed_tx, missed_tx,
drivers/net/ethernet/amazon/ena/ena_netdev.c
3501
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.c
3508
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
3534
tx_ring = &adapter->tx_ring[qid];
drivers/net/ethernet/amazon/ena/ena_netdev.c
3537
rc = check_missing_comp_in_tx_queue(adapter, tx_ring);
drivers/net/ethernet/amazon/ena/ena_netdev.c
54
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
63
tx_ring = &adapter->tx_ring[txqueue];
drivers/net/ethernet/amazon/ena/ena_netdev.c
65
time_since_last_napi = jiffies_to_usecs(jiffies - tx_ring->tx_stats.last_napi_jiffies);
drivers/net/ethernet/amazon/ena/ena_netdev.c
66
napi_scheduled = !!(tx_ring->napi->state & NAPIF_STATE_SCHED);
drivers/net/ethernet/amazon/ena/ena_netdev.c
662
void ena_unmap_tx_buff(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.c
676
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/amazon/ena/ena_netdev.c
686
dma_unmap_page(tx_ring->dev, dma_unmap_addr(ena_buf, paddr),
drivers/net/ethernet/amazon/ena/ena_netdev.c
695
static void ena_free_tx_bufs(struct ena_ring *tx_ring)
drivers/net/ethernet/amazon/ena/ena_netdev.c
701
is_xdp_ring = ENA_IS_XDP_INDEX(tx_ring->adapter, tx_ring->qid);
drivers/net/ethernet/amazon/ena/ena_netdev.c
703
for (i = 0; i < tx_ring->ring_size; i++) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
704
struct ena_tx_buffer *tx_info = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
710
netif_notice(tx_ring->adapter, ifdown, tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_netdev.c
712
tx_ring->qid, i);
drivers/net/ethernet/amazon/ena/ena_netdev.c
715
netif_dbg(tx_ring->adapter, ifdown, tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_netdev.c
717
tx_ring->qid, i);
drivers/net/ethernet/amazon/ena/ena_netdev.c
720
ena_unmap_tx_buff(tx_ring, tx_info);
drivers/net/ethernet/amazon/ena/ena_netdev.c
729
netdev_tx_reset_queue(netdev_get_tx_queue(tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_netdev.c
730
tx_ring->qid));
drivers/net/ethernet/amazon/ena/ena_netdev.c
735
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.c
739
tx_ring = &adapter->tx_ring[i];
drivers/net/ethernet/amazon/ena/ena_netdev.c
740
ena_free_tx_bufs(tx_ring);
drivers/net/ethernet/amazon/ena/ena_netdev.c
796
static int validate_tx_req_id(struct ena_ring *tx_ring, u16 req_id)
drivers/net/ethernet/amazon/ena/ena_netdev.c
800
tx_info = &tx_ring->tx_buffer_info[req_id];
drivers/net/ethernet/amazon/ena/ena_netdev.c
804
return handle_invalid_req_id(tx_ring, req_id, tx_info, false);
drivers/net/ethernet/amazon/ena/ena_netdev.c
807
static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget)
drivers/net/ethernet/amazon/ena/ena_netdev.c
818
next_to_clean = tx_ring->next_to_clean;
drivers/net/ethernet/amazon/ena/ena_netdev.c
819
txq = netdev_get_tx_queue(tx_ring->netdev, tx_ring->qid);
drivers/net/ethernet/amazon/ena/ena_netdev.c
825
rc = ena_com_tx_comp_req_id_get(tx_ring->ena_com_io_cq,
drivers/net/ethernet/amazon/ena/ena_netdev.c
829
handle_invalid_req_id(tx_ring, req_id, NULL, false);
drivers/net/ethernet/amazon/ena/ena_netdev.c
834
rc = validate_tx_req_id(tx_ring, req_id);
drivers/net/ethernet/amazon/ena/ena_netdev.c
838
tx_info = &tx_ring->tx_buffer_info[req_id];
drivers/net/ethernet/amazon/ena/ena_netdev.c
847
ena_unmap_tx_buff(tx_ring, tx_info);
drivers/net/ethernet/amazon/ena/ena_netdev.c
849
netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_netdev.c
850
"tx_poll: q %d skb %p completed\n", tx_ring->qid,
drivers/net/ethernet/amazon/ena/ena_netdev.c
858
tx_ring->free_ids[next_to_clean] = req_id;
drivers/net/ethernet/amazon/ena/ena_netdev.c
860
tx_ring->ring_size);
drivers/net/ethernet/amazon/ena/ena_netdev.c
863
tx_ring->next_to_clean = next_to_clean;
drivers/net/ethernet/amazon/ena/ena_netdev.c
864
ena_com_comp_ack(tx_ring->ena_com_io_sq, total_done);
drivers/net/ethernet/amazon/ena/ena_netdev.c
868
netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_netdev.c
870
tx_ring->qid, tx_pkts);
drivers/net/ethernet/amazon/ena/ena_netdev.c
877
above_thresh = ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
drivers/net/ethernet/amazon/ena/ena_netdev.c
882
ena_com_sq_have_enough_space(tx_ring->ena_com_io_sq,
drivers/net/ethernet/amazon/ena/ena_netdev.c
885
test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags)) {
drivers/net/ethernet/amazon/ena/ena_netdev.c
887
ena_increase_stat(&tx_ring->tx_stats.queue_wakeup, 1,
drivers/net/ethernet/amazon/ena/ena_netdev.c
888
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.h
129
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_netdev.h
358
struct ena_ring tx_ring[ENA_MAX_NUM_IO_QUEUES]
drivers/net/ethernet/amazon/ena/ena_netdev.h
441
static inline void ena_ring_tx_doorbell(struct ena_ring *tx_ring)
drivers/net/ethernet/amazon/ena/ena_netdev.h
443
ena_com_write_sq_doorbell(tx_ring->ena_com_io_sq);
drivers/net/ethernet/amazon/ena/ena_netdev.h
444
ena_increase_stat(&tx_ring->tx_stats.doorbells, 1, &tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_netdev.h
453
void ena_unmap_tx_buff(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_netdev.h
466
void ena_unmask_interrupt(struct ena_ring *tx_ring, struct ena_ring *rx_ring);
drivers/net/ethernet/amazon/ena/ena_netdev.h
467
void ena_update_ring_numa_node(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_xdp.c
109
ena_ring_tx_doorbell(tx_ring);
drivers/net/ethernet/amazon/ena/ena_xdp.c
114
ena_unmap_tx_buff(tx_ring, tx_info);
drivers/net/ethernet/amazon/ena/ena_xdp.c
12
tx_info = &tx_ring->tx_buffer_info[req_id];
drivers/net/ethernet/amazon/ena/ena_xdp.c
125
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_xdp.c
140
tx_ring = &adapter->tx_ring[qid];
drivers/net/ethernet/amazon/ena/ena_xdp.c
143
spin_lock(&tx_ring->xdp_tx_lock);
drivers/net/ethernet/amazon/ena/ena_xdp.c
146
if (ena_xdp_xmit_frame(tx_ring, adapter, frames[i], 0))
drivers/net/ethernet/amazon/ena/ena_xdp.c
153
ena_ring_tx_doorbell(tx_ring);
drivers/net/ethernet/amazon/ena/ena_xdp.c
155
spin_unlock(&tx_ring->xdp_tx_lock);
drivers/net/ethernet/amazon/ena/ena_xdp.c
16
return handle_invalid_req_id(tx_ring, req_id, tx_info, true);
drivers/net/ethernet/amazon/ena/ena_xdp.c
19
static int ena_xdp_tx_map_frame(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_xdp.c
24
struct ena_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/amazon/ena/ena_xdp.c
35
if (tx_ring->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
drivers/net/ethernet/amazon/ena/ena_xdp.c
367
static int ena_clean_xdp_irq(struct ena_ring *tx_ring, u32 budget)
drivers/net/ethernet/amazon/ena/ena_xdp.c
37
push_len = min_t(u32, size, tx_ring->tx_max_header_size);
drivers/net/ethernet/amazon/ena/ena_xdp.c
375
if (unlikely(!tx_ring))
drivers/net/ethernet/amazon/ena/ena_xdp.c
377
next_to_clean = tx_ring->next_to_clean;
drivers/net/ethernet/amazon/ena/ena_xdp.c
383
rc = ena_com_tx_comp_req_id_get(tx_ring->ena_com_io_cq,
drivers/net/ethernet/amazon/ena/ena_xdp.c
387
handle_invalid_req_id(tx_ring, req_id, NULL, true);
drivers/net/ethernet/amazon/ena/ena_xdp.c
392
rc = validate_xdp_req_id(tx_ring, req_id);
drivers/net/ethernet/amazon/ena/ena_xdp.c
396
tx_info = &tx_ring->tx_buffer_info[req_id];
drivers/net/ethernet/amazon/ena/ena_xdp.c
402
ena_unmap_tx_buff(tx_ring, tx_info);
drivers/net/ethernet/amazon/ena/ena_xdp.c
407
tx_ring->free_ids[next_to_clean] = req_id;
drivers/net/ethernet/amazon/ena/ena_xdp.c
409
tx_ring->ring_size);
drivers/net/ethernet/amazon/ena/ena_xdp.c
411
netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_xdp.c
412
"tx_poll: q %d pkt #%d req_id %d\n", tx_ring->qid, tx_pkts, req_id);
drivers/net/ethernet/amazon/ena/ena_xdp.c
415
tx_ring->next_to_clean = next_to_clean;
drivers/net/ethernet/amazon/ena/ena_xdp.c
416
ena_com_comp_ack(tx_ring->ena_com_io_sq, total_done);
drivers/net/ethernet/amazon/ena/ena_xdp.c
418
netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev,
drivers/net/ethernet/amazon/ena/ena_xdp.c
420
tx_ring->qid, tx_pkts);
drivers/net/ethernet/amazon/ena/ena_xdp.c
431
struct ena_ring *tx_ring;
drivers/net/ethernet/amazon/ena/ena_xdp.c
435
tx_ring = ena_napi->tx_ring;
drivers/net/ethernet/amazon/ena/ena_xdp.c
437
if (!test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags) ||
drivers/net/ethernet/amazon/ena/ena_xdp.c
438
test_bit(ENA_FLAG_TRIGGER_RESET, &tx_ring->adapter->flags)) {
drivers/net/ethernet/amazon/ena/ena_xdp.c
443
work_done = ena_clean_xdp_irq(tx_ring, budget);
drivers/net/ethernet/amazon/ena/ena_xdp.c
448
if (unlikely(!test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags))) {
drivers/net/ethernet/amazon/ena/ena_xdp.c
452
ena_increase_stat(&tx_ring->tx_stats.napi_comp, 1,
drivers/net/ethernet/amazon/ena/ena_xdp.c
453
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_xdp.c
455
ena_unmask_interrupt(tx_ring, NULL);
drivers/net/ethernet/amazon/ena/ena_xdp.c
457
ena_update_ring_numa_node(tx_ring, NULL);
drivers/net/ethernet/amazon/ena/ena_xdp.c
463
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_xdp.c
464
tx_ring->tx_stats.tx_poll++;
drivers/net/ethernet/amazon/ena/ena_xdp.c
465
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_xdp.c
466
tx_ring->tx_stats.last_napi_jiffies = jiffies;
drivers/net/ethernet/amazon/ena/ena_xdp.c
48
dma = dma_map_single(tx_ring->dev,
drivers/net/ethernet/amazon/ena/ena_xdp.c
52
if (unlikely(dma_mapping_error(tx_ring->dev, dma)))
drivers/net/ethernet/amazon/ena/ena_xdp.c
68
ena_increase_stat(&tx_ring->tx_stats.dma_mapping_err, 1,
drivers/net/ethernet/amazon/ena/ena_xdp.c
69
&tx_ring->syncp);
drivers/net/ethernet/amazon/ena/ena_xdp.c
75
int ena_xdp_xmit_frame(struct ena_ring *tx_ring,
drivers/net/ethernet/amazon/ena/ena_xdp.c
8
static int validate_xdp_req_id(struct ena_ring *tx_ring, u16 req_id)
drivers/net/ethernet/amazon/ena/ena_xdp.c
85
next_to_use = tx_ring->next_to_use;
drivers/net/ethernet/amazon/ena/ena_xdp.c
86
req_id = tx_ring->free_ids[next_to_use];
drivers/net/ethernet/amazon/ena/ena_xdp.c
87
tx_info = &tx_ring->tx_buffer_info[req_id];
drivers/net/ethernet/amazon/ena/ena_xdp.c
90
rc = ena_xdp_tx_map_frame(tx_ring, tx_info, xdpf, &ena_tx_ctx);
drivers/net/ethernet/amazon/ena/ena_xdp.c
97
tx_ring,
drivers/net/ethernet/amazon/ena/ena_xdp.h
38
int ena_xdp_xmit_frame(struct ena_ring *tx_ring,
drivers/net/ethernet/amd/amd8111e.c
1256
lp->tx_ring[tx_index].buff_count = cpu_to_le16(skb->len);
drivers/net/ethernet/amd/amd8111e.c
1259
lp->tx_ring[tx_index].tx_flags = 0;
drivers/net/ethernet/amd/amd8111e.c
1263
lp->tx_ring[tx_index].tag_ctrl_cmd |=
drivers/net/ethernet/amd/amd8111e.c
1265
lp->tx_ring[tx_index].tag_ctrl_info =
drivers/net/ethernet/amd/amd8111e.c
1273
lp->tx_ring[tx_index].buff_phy_addr =
drivers/net/ethernet/amd/amd8111e.c
1278
lp->tx_ring[tx_index].tx_flags |=
drivers/net/ethernet/amd/amd8111e.c
293
lp->tx_ring = dma_alloc_coherent(&lp->pci_dev->dev,
drivers/net/ethernet/amd/amd8111e.c
296
if (!lp->tx_ring)
drivers/net/ethernet/amd/amd8111e.c
336
lp->tx_ring[i].buff_phy_addr = 0;
drivers/net/ethernet/amd/amd8111e.c
337
lp->tx_ring[i].tx_flags = 0;
drivers/net/ethernet/amd/amd8111e.c
338
lp->tx_ring[i].buff_count = 0;
drivers/net/ethernet/amd/amd8111e.c
353
lp->tx_ring, lp->tx_ring_dma_addr);
drivers/net/ethernet/amd/amd8111e.c
625
if (lp->tx_ring) {
drivers/net/ethernet/amd/amd8111e.c
628
lp->tx_ring, lp->tx_ring_dma_addr);
drivers/net/ethernet/amd/amd8111e.c
630
lp->tx_ring = NULL;
drivers/net/ethernet/amd/amd8111e.c
647
status = le16_to_cpu(lp->tx_ring[tx_index].tx_flags);
drivers/net/ethernet/amd/amd8111e.c
652
lp->tx_ring[tx_index].buff_phy_addr = 0;
drivers/net/ethernet/amd/amd8111e.c
668
le16_to_cpu(lp->tx_ring[tx_index].buff_count);
drivers/net/ethernet/amd/amd8111e.h
735
struct amd8111e_tx_dr* tx_ring;
drivers/net/ethernet/amd/ariadne.c
100
struct TDRE tx_ring[TX_RING_SIZE];
drivers/net/ethernet/amd/ariadne.c
130
volatile struct TDRE *t = &lancedata->tx_ring[i];
drivers/net/ethernet/amd/ariadne.c
138
priv->tx_ring[i] = &lancedata->tx_ring[i];
drivers/net/ethernet/amd/ariadne.c
141
i, &lancedata->tx_ring[i], lancedata->tx_buff[i]);
drivers/net/ethernet/amd/ariadne.c
310
int status = lowb(priv->tx_ring[entry]->TMD1);
drivers/net/ethernet/amd/ariadne.c
315
priv->tx_ring[entry]->TMD1 &= 0xff00;
drivers/net/ethernet/amd/ariadne.c
319
int err_status = priv->tx_ring[entry]->TMD3;
drivers/net/ethernet/amd/ariadne.c
456
lance->RDP = swloww(ARIADNE_RAM + offsetof(struct lancedata, tx_ring));
drivers/net/ethernet/amd/ariadne.c
458
lance->RDP = swhighw(ARIADNE_RAM + offsetof(struct lancedata, tx_ring));
drivers/net/ethernet/amd/ariadne.c
581
priv->tx_ring[entry]->TMD2 = swapw((u_short)-skb->len);
drivers/net/ethernet/amd/ariadne.c
582
priv->tx_ring[entry]->TMD3 = 0x0000;
drivers/net/ethernet/amd/ariadne.c
591
priv->tx_ring[entry]->TMD1 = (priv->tx_ring[entry]->TMD1 & 0xff00)
drivers/net/ethernet/amd/ariadne.c
612
if (lowb(priv->tx_ring[(entry + 1) % TX_RING_SIZE]->TMD1) != 0) {
drivers/net/ethernet/amd/ariadne.c
88
volatile struct TDRE *tx_ring[TX_RING_SIZE];
drivers/net/ethernet/amd/atarilance.c
152
struct ringdesc tx_ring;
drivers/net/ethernet/amd/atarilance.c
620
MEM->init.tx_ring.adr_lo = offsetof( struct lance_memory, tx_head );
drivers/net/ethernet/amd/atarilance.c
621
MEM->init.tx_ring.adr_hi = 0;
drivers/net/ethernet/amd/atarilance.c
622
MEM->init.tx_ring.len = TX_RING_LEN_BITS;
drivers/net/ethernet/amd/lance.c
1004
lp->tx_ring[entry].base =
drivers/net/ethernet/amd/lance.c
1009
lp->tx_ring[entry].base = ((u32)isa_virt_to_bus(skb->data) & 0xffffff) | 0x83000000;
drivers/net/ethernet/amd/lance.c
1058
int status = lp->tx_ring[entry].base;
drivers/net/ethernet/amd/lance.c
1063
lp->tx_ring[entry].base = 0;
drivers/net/ethernet/amd/lance.c
1067
int err_status = lp->tx_ring[entry].misc;
drivers/net/ethernet/amd/lance.c
233
u32 tx_ring;
drivers/net/ethernet/amd/lance.c
239
struct lance_tx_head tx_ring[TX_RING_SIZE];
drivers/net/ethernet/amd/lance.c
581
lp->init_block.tx_ring = ((u32)isa_virt_to_bus(lp->tx_ring) & 0xffffff) | TX_RING_LEN_BITS;
drivers/net/ethernet/amd/lance.c
794
(u32) isa_virt_to_bus(lp->tx_ring),
drivers/net/ethernet/amd/lance.c
895
lp->tx_ring[i].base = 0;
drivers/net/ethernet/amd/lance.c
904
lp->init_block.tx_ring = ((u32)isa_virt_to_bus(lp->tx_ring) & 0xffffff) | TX_RING_LEN_BITS;
drivers/net/ethernet/amd/lance.c
944
lp->tx_ring[i].base, -lp->tx_ring[i].length,
drivers/net/ethernet/amd/lance.c
945
lp->tx_ring[i].misc);
drivers/net/ethernet/amd/lance.c
986
lp->tx_ring[entry].length = -ETH_ZLEN;
drivers/net/ethernet/amd/lance.c
989
lp->tx_ring[entry].length = -skb->len;
drivers/net/ethernet/amd/lance.c
991
lp->tx_ring[entry].length = -skb->len;
drivers/net/ethernet/amd/lance.c
993
lp->tx_ring[entry].misc = 0x0000;
drivers/net/ethernet/amd/pcnet32.c
1021
lp->tx_ring[x].length = cpu_to_le16(-skb->len);
drivers/net/ethernet/amd/pcnet32.c
1022
lp->tx_ring[x].misc = 0;
drivers/net/ethernet/amd/pcnet32.c
1047
lp->tx_ring[x].base = cpu_to_le32(lp->tx_dma_addr[x]);
drivers/net/ethernet/amd/pcnet32.c
1049
lp->tx_ring[x].status = cpu_to_le16(status);
drivers/net/ethernet/amd/pcnet32.c
1313
int status = (short)le16_to_cpu(lp->tx_ring[entry].status);
drivers/net/ethernet/amd/pcnet32.c
1318
lp->tx_ring[entry].base = 0;
drivers/net/ethernet/amd/pcnet32.c
1322
int err_status = le32_to_cpu(lp->tx_ring[entry].misc);
drivers/net/ethernet/amd/pcnet32.c
1915
lp->init_block->tx_ring = cpu_to_le32(lp->tx_ring_dma_addr);
drivers/net/ethernet/amd/pcnet32.c
2022
lp->tx_ring = dma_alloc_coherent(&lp->pci_dev->dev,
drivers/net/ethernet/amd/pcnet32.c
2025
if (!lp->tx_ring) {
drivers/net/ethernet/amd/pcnet32.c
2073
if (lp->tx_ring) {
drivers/net/ethernet/amd/pcnet32.c
2076
lp->tx_ring, lp->tx_ring_dma_addr);
drivers/net/ethernet/amd/pcnet32.c
2077
lp->tx_ring = NULL;
drivers/net/ethernet/amd/pcnet32.c
2344
lp->tx_ring[i].status = 0; /* CPU owns buffer */
drivers/net/ethernet/amd/pcnet32.c
237
__le32 tx_ring;
drivers/net/ethernet/amd/pcnet32.c
2404
lp->tx_ring[i].status = 0; /* CPU owns buffer */
drivers/net/ethernet/amd/pcnet32.c
2406
lp->tx_ring[i].base = 0;
drivers/net/ethernet/amd/pcnet32.c
2415
lp->init_block->tx_ring = cpu_to_le32(lp->tx_ring_dma_addr);
drivers/net/ethernet/amd/pcnet32.c
2479
le32_to_cpu(lp->tx_ring[i].base),
drivers/net/ethernet/amd/pcnet32.c
2480
(-le16_to_cpu(lp->tx_ring[i].length)) & 0xffff,
drivers/net/ethernet/amd/pcnet32.c
2481
le32_to_cpu(lp->tx_ring[i].misc),
drivers/net/ethernet/amd/pcnet32.c
2482
le16_to_cpu(lp->tx_ring[i].status));
drivers/net/ethernet/amd/pcnet32.c
2521
lp->tx_ring[entry].length = cpu_to_le16(-skb->len);
drivers/net/ethernet/amd/pcnet32.c
2523
lp->tx_ring[entry].misc = 0x00000000;
drivers/net/ethernet/amd/pcnet32.c
2534
lp->tx_ring[entry].base = cpu_to_le32(lp->tx_dma_addr[entry]);
drivers/net/ethernet/amd/pcnet32.c
2536
lp->tx_ring[entry].status = cpu_to_le16(status);
drivers/net/ethernet/amd/pcnet32.c
2544
if (lp->tx_ring[(entry + 1) & lp->tx_mod_mask].base != 0) {
drivers/net/ethernet/amd/pcnet32.c
259
struct pcnet32_tx_head *tx_ring;
drivers/net/ethernet/amd/pcnet32.c
506
lp->tx_ring, lp->tx_ring_dma_addr);
drivers/net/ethernet/amd/pcnet32.c
511
lp->tx_ring = new_tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-desc.c
148
ret = xgbe_init_ring(pdata, channel->tx_ring,
drivers/net/ethernet/amd/xgbe/xgbe-desc.c
296
ring = channel->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-desc.c
422
struct xgbe_ring *ring = channel->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-desc.c
72
xgbe_free_ring(pdata, channel->tx_ring);
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
105
if (!pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
1451
struct xgbe_ring *ring = channel->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
1591
struct xgbe_ring *ring = channel->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
195
if (!pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
3228
if (!pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
3260
if (!pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
3350
if (!pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
3373
if (!pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
600
if (channel->tx_ring) {
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
88
if (pdata->channel[i]->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1076
ring = pdata->channel[i]->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
121
channel->tx_ring = ring;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1348
if (!channel->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
141
channel->tx_ring, channel->rx_ring);
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1696
ring = channel->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
206
if (channel->tx_ring && channel->rx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
208
else if (channel->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
2151
struct xgbe_ring *ring = channel->tx_ring;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
232
if (channel->tx_ring && channel->rx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
234
else if (channel->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
621
if (!channel->tx_ring || channel->tx_timer_active)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
638
if (!channel->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
659
if (!channel->tx_ring)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
72
kfree(pdata->channel[i]->tx_ring);
drivers/net/ethernet/amd/xgbe/xgbe.h
441
struct xgbe_ring *tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
174
struct xge_desc_ring *tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
182
tx_ring = pdata->tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
183
tail = tx_ring->tail;
drivers/net/ethernet/apm/xgene-v2/main.c
185
raw_desc = &tx_ring->raw_desc[tail];
drivers/net/ethernet/apm/xgene-v2/main.c
208
tx_ring->pkt_info[tail].skb = skb;
drivers/net/ethernet/apm/xgene-v2/main.c
209
tx_ring->pkt_info[tail].dma_addr = dma_addr;
drivers/net/ethernet/apm/xgene-v2/main.c
210
tx_ring->pkt_info[tail].pkt_buf = pkt_buf;
drivers/net/ethernet/apm/xgene-v2/main.c
220
tx_ring->tail = (tail + 1) & (XGENE_ENET_NUM_DESC - 1);
drivers/net/ethernet/apm/xgene-v2/main.c
238
struct xge_desc_ring *tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
246
tx_ring = pdata->tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
247
head = tx_ring->head;
drivers/net/ethernet/apm/xgene-v2/main.c
254
raw_desc = &tx_ring->raw_desc[head];
drivers/net/ethernet/apm/xgene-v2/main.c
261
skb = tx_ring->pkt_info[head].skb;
drivers/net/ethernet/apm/xgene-v2/main.c
262
dma_addr = tx_ring->pkt_info[head].dma_addr;
drivers/net/ethernet/apm/xgene-v2/main.c
263
pkt_buf = tx_ring->pkt_info[head].pkt_buf;
drivers/net/ethernet/apm/xgene-v2/main.c
280
tx_ring->head = head;
drivers/net/ethernet/apm/xgene-v2/main.c
394
xge_delete_desc_ring(ndev, pdata->tx_ring);
drivers/net/ethernet/apm/xgene-v2/main.c
445
pdata->tx_ring = ring;
drivers/net/ethernet/apm/xgene-v2/main.c
552
struct xge_desc_ring *tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
559
tx_ring = pdata->tx_ring;
drivers/net/ethernet/apm/xgene-v2/main.c
562
raw_desc = &tx_ring->raw_desc[i];
drivers/net/ethernet/apm/xgene-v2/main.c
567
skb = tx_ring->pkt_info[i].skb;
drivers/net/ethernet/apm/xgene-v2/main.c
568
dma_addr = tx_ring->pkt_info[i].dma_addr;
drivers/net/ethernet/apm/xgene-v2/main.c
569
pkt_buf = tx_ring->pkt_info[i].pkt_buf;
drivers/net/ethernet/apm/xgene-v2/main.c
593
xge_setup_desc(pdata->tx_ring);
drivers/net/ethernet/apm/xgene-v2/main.h
53
struct xge_desc_ring *tx_ring;
drivers/net/ethernet/apm/xgene-v2/ring.c
36
struct xge_desc_ring *ring = pdata->tx_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1067
ring = pdata->tx_ring[i];
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1073
pdata->tx_ring[i] = NULL;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1156
ring = pdata->tx_ring[i];
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1307
struct xgene_enet_desc_ring *rx_ring, *tx_ring, *cp_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1403
tx_ring = xgene_enet_create_desc_ring(ndev, ring_num++,
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1406
if (!tx_ring) {
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1411
size = (tx_ring->slots / 2) * sizeof(__le64) * MAX_EXP_BUFFS;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1418
tx_ring->exp_bufs = exp_bufs;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1420
pdata->tx_ring[i] = tx_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1440
cp_ring->cp_skb = devm_kcalloc(dev, tx_ring->slots,
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1449
cp_ring->frag_dma_addr = devm_kcalloc(dev, tx_ring->slots,
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1457
tx_ring->cp_ring = cp_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1458
tx_ring->dst_ring_num = xgene_enet_dst_ring_num(cp_ring);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1462
pdata->ring_ops->coalesce(pdata->tx_ring[0]);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1463
pdata->tx_qcnt_hi = pdata->tx_ring[0]->slots - 128;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1481
ring = pdata->tx_ring[i];
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
1986
napi = &pdata->tx_ring[i]->cp_ring->napi;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
406
static int xgene_enet_setup_tx_desc(struct xgene_enet_desc_ring *tx_ring,
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
409
struct device *dev = ndev_to_dev(tx_ring->ndev);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
410
struct xgene_enet_pdata *pdata = netdev_priv(tx_ring->ndev);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
415
u16 tail = tx_ring->tail;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
424
raw_desc = &tx_ring->raw_desc[tail];
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
425
tail = (tail + 1) & (tx_ring->slots - 1);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
432
raw_desc->m3 = cpu_to_le64(SET_VAL(HENQNUM, tx_ring->dst_ring_num) |
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
440
netdev_err(tx_ring->ndev, "DMA mapping error\n");
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
454
exp_desc = (void *)&tx_ring->raw_desc[tail];
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
455
tail = (tail + 1) & (tx_ring->slots - 1);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
462
frag_dma_addr = xgene_get_frag_dma_array(tx_ring);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
501
exp_bufs = xgene_enet_get_exp_bufs(tx_ring);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
541
SET_VAL(USERINFO, tx_ring->tail));
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
542
tx_ring->cp_ring->cp_skb[tx_ring->tail] = skb;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
543
pdata->tx_level[tx_ring->cp_ring->index] += count;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
544
tx_ring->tail = tail;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
553
struct xgene_enet_desc_ring *tx_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
558
tx_ring = pdata->tx_ring[index];
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
570
count = xgene_enet_setup_tx_desc(tx_ring, skb);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
581
tx_ring->tx_packets++;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
582
tx_ring->tx_bytes += skb->len;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
584
pdata->ring_ops->wr_cmd(tx_ring, count);
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
897
ring = pdata->tx_ring[i]->cp_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
923
ring = pdata->tx_ring[i]->cp_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
953
ring = pdata->tx_ring[i]->cp_ring;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
970
napi = &pdata->tx_ring[i]->cp_ring->napi;
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
986
napi = &pdata->tx_ring[i]->cp_ring->napi;
drivers/net/ethernet/apm/xgene/xgene_enet_main.h
191
struct xgene_enet_desc_ring *tx_ring[XGENE_NUM_TX_RING];
drivers/net/ethernet/apple/macmace.c
388
mp->tx_ring = dma_alloc_coherent(mp->device,
drivers/net/ethernet/apple/macmace.c
391
if (mp->tx_ring == NULL)
drivers/net/ethernet/apple/macmace.c
420
mp->tx_ring, mp->tx_ring_phys);
drivers/net/ethernet/apple/macmace.c
468
skb_copy_from_linear_data(skb, mp->tx_ring, skb->len);
drivers/net/ethernet/apple/macmace.c
58
unsigned char *tx_ring;
drivers/net/ethernet/apple/macmace.c
755
mp->tx_ring, mp->tx_ring_phys);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
826
int aq_nic_xmit_xdpf(struct aq_nic_s *aq_nic, struct aq_ring_s *tx_ring,
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
829
u16 queue_index = AQ_NIC_RING2QMAP(aq_nic, tx_ring->idx);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
845
nq = netdev_get_tx_queue(ndev, tx_ring->idx);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
848
aq_ring_update_queue_state(tx_ring);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
854
frags = aq_nic_map_xdp(aq_nic, xdpf, tx_ring);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
856
err = aq_nic->aq_hw_ops->hw_ring_tx_xmit(aq_nic->aq_hw, tx_ring,
drivers/net/ethernet/aquantia/atlantic/aq_nic.h
185
int aq_nic_xmit_xdpf(struct aq_nic_s *aq_nic, struct aq_ring_s *tx_ring,
drivers/net/ethernet/aquantia/atlantic/aq_ring.c
411
struct aq_ring_s *tx_ring;
drivers/net/ethernet/aquantia/atlantic/aq_ring.c
446
tx_ring = aq_nic->aq_ring_tx[rx_ring->idx];
drivers/net/ethernet/aquantia/atlantic/aq_ring.c
447
result = aq_nic_xmit_xdpf(aq_nic, tx_ring, xdpf);
drivers/net/ethernet/atheros/ag71xx.c
1001
ag->fifodata[2] |= ((2048 - ag->tx_ring.desc_split) / 4) << 16;
drivers/net/ethernet/atheros/ag71xx.c
1120
struct ag71xx_ring *ring = &ag->tx_ring;
drivers/net/ethernet/atheros/ag71xx.c
1152
struct ag71xx_ring *ring = &ag->tx_ring;
drivers/net/ethernet/atheros/ag71xx.c
1301
struct ag71xx_ring *tx = &ag->tx_ring;
drivers/net/ethernet/atheros/ag71xx.c
1331
struct ag71xx_ring *tx = &ag->tx_ring;
drivers/net/ethernet/atheros/ag71xx.c
1384
ag71xx_wr(ag, AG71XX_REG_TX_DESC, ag->tx_ring.descs_dma);
drivers/net/ethernet/atheros/ag71xx.c
1508
ring = &ag->tx_ring;
drivers/net/ethernet/atheros/ag71xx.c
1884
ag->tx_ring.desc_split = AG71XX_TX_RING_SPLIT;
drivers/net/ethernet/atheros/ag71xx.c
1887
ag->tx_ring.order = ag71xx_ring_size_order(tx_size);
drivers/net/ethernet/atheros/ag71xx.c
353
struct ag71xx_ring tx_ring ____cacheline_aligned;
drivers/net/ethernet/atheros/ag71xx.c
771
struct ag71xx_ring *ring = &ag->tx_ring;
drivers/net/ethernet/atheros/ag71xx.c
962
ag->tx_ring.curr = 0;
drivers/net/ethernet/atheros/ag71xx.c
963
ag->tx_ring.dirty = 0;
drivers/net/ethernet/atheros/ag71xx.c
971
ag71xx_wr(ag, AG71XX_REG_TX_DESC, ag->tx_ring.descs_dma);
drivers/net/ethernet/atheros/ag71xx.c
999
if (ag->tx_ring.desc_split) {
drivers/net/ethernet/atheros/atl1e/atl1e.h
444
struct atl1e_tx_ring tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1232
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1235
u16 next_to_clean = atomic_read(&tx_ring->next_to_clean);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1238
tx_buffer = &tx_ring->tx_buffer[next_to_clean];
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1258
if (++next_to_clean == tx_ring->count)
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1262
atomic_set(&tx_ring->next_to_clean, next_to_clean);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1561
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1565
next_to_clean = atomic_read(&tx_ring->next_to_clean);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1566
next_to_use = tx_ring->next_to_use;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1570
(tx_ring->count + next_to_clean - next_to_use - 1);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1580
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1583
next_to_use = tx_ring->next_to_use;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1584
if (++tx_ring->next_to_use == tx_ring->count)
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1585
tx_ring->next_to_use = 0;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1587
memset(&tx_ring->desc[next_to_use], 0, sizeof(struct atl1e_tpd_desc));
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1588
return &tx_ring->desc[next_to_use];
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1594
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1596
return &tx_ring->tx_buffer[tpd - tx_ring->desc];
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1714
int ring_start = adapter->tx_ring.next_to_use;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1763
ring_end = adapter->tx_ring.next_to_use;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1764
adapter->tx_ring.next_to_use = ring_start;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1765
while (adapter->tx_ring.next_to_use != ring_end) {
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1774
adapter->tx_ring.next_to_use = ring_start;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1815
ring_end = adapter->tx_ring.next_to_use;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1816
adapter->tx_ring.next_to_use = ring_start;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1817
while (adapter->tx_ring.next_to_use != ring_end) {
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1825
adapter->tx_ring.next_to_use = ring_start;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1852
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
1858
AT_WRITE_REG(&adapter->hw, REG_MB_TPD_PROD_IDX, tx_ring->next_to_use);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
615
hw->tpd_thresh = adapter->tx_ring.count / 2;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
642
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
647
if (tx_ring->desc == NULL || tx_ring->tx_buffer == NULL)
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
650
ring_count = tx_ring->count;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
653
tx_buffer = &tx_ring->tx_buffer[index];
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
668
tx_buffer = &tx_ring->tx_buffer[index];
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
675
memset(tx_ring->desc, 0, sizeof(struct atl1e_tpd_desc) *
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
677
memset(tx_ring->tx_buffer, 0, sizeof(struct atl1e_tx_buffer) *
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
708
*ring_size = ((u32)(adapter->tx_ring.count *
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
734
rwlock_init(&adapter->tx_ring.tx_lock);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
742
struct atl1e_tx_ring *tx_ring = NULL;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
747
tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
751
tx_ring->next_to_use = 0;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
752
atomic_set(&tx_ring->next_to_clean, 0);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
783
if (adapter->tx_ring.tx_buffer) {
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
784
kfree(adapter->tx_ring.tx_buffer);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
785
adapter->tx_ring.tx_buffer = NULL;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
798
struct atl1e_tx_ring *tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
808
tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
826
tx_ring->dma = roundup(adapter->ring_dma, 8);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
827
offset = tx_ring->dma - adapter->ring_dma;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
828
tx_ring->desc = adapter->ring_vir_addr + offset;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
829
size = sizeof(struct atl1e_tx_buffer) * (tx_ring->count);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
830
tx_ring->tx_buffer = kzalloc(size, GFP_KERNEL);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
831
if (tx_ring->tx_buffer == NULL) {
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
837
offset += (sizeof(struct atl1e_tpd_desc) * tx_ring->count);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
851
tx_ring->cmb_dma = adapter->ring_dma + offset;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
852
tx_ring->cmb = adapter->ring_vir_addr + offset;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
874
kfree(tx_ring->tx_buffer);
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
875
tx_ring->tx_buffer = NULL;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
890
struct atl1e_tx_ring *tx_ring = &adapter->tx_ring;
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
897
(u32)((tx_ring->dma) & AT_DMA_LO_ADDR_MASK));
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
898
AT_WRITE_REG(hw, REG_TPD_RING_SIZE, (u16)(tx_ring->count));
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
900
(u32)((tx_ring->cmb_dma) & AT_DMA_LO_ADDR_MASK));
drivers/net/ethernet/atheros/atl1e/atl1e_param.c
193
adapter->tx_ring.count = (u16) val & 0xFFFC;
drivers/net/ethernet/atheros/atl1e/atl1e_param.c
195
adapter->tx_ring.count = (u16)opt.def;
drivers/net/ethernet/broadcom/b44.c
1003
bp->tx_ring[entry].ctrl = cpu_to_le32(ctrl);
drivers/net/ethernet/broadcom/b44.c
1004
bp->tx_ring[entry].addr = cpu_to_le32((u32) mapping+bp->dma_offset);
drivers/net/ethernet/broadcom/b44.c
1008
entry * sizeof(bp->tx_ring[0]),
drivers/net/ethernet/broadcom/b44.c
1111
memset(bp->tx_ring, 0, B44_TX_RING_BYTES);
drivers/net/ethernet/broadcom/b44.c
1148
if (bp->tx_ring) {
drivers/net/ethernet/broadcom/b44.c
1152
kfree(bp->tx_ring);
drivers/net/ethernet/broadcom/b44.c
1155
bp->tx_ring, bp->tx_ring_dma);
drivers/net/ethernet/broadcom/b44.c
1156
bp->tx_ring = NULL;
drivers/net/ethernet/broadcom/b44.c
1208
bp->tx_ring = dma_alloc_coherent(bp->sdev->dma_dev, size,
drivers/net/ethernet/broadcom/b44.c
1210
if (!bp->tx_ring) {
drivers/net/ethernet/broadcom/b44.c
1214
struct dma_desc *tx_ring;
drivers/net/ethernet/broadcom/b44.c
1217
tx_ring = kzalloc(size, gfp);
drivers/net/ethernet/broadcom/b44.c
1218
if (!tx_ring)
drivers/net/ethernet/broadcom/b44.c
1221
tx_ring_dma = dma_map_single(bp->sdev->dma_dev, tx_ring,
drivers/net/ethernet/broadcom/b44.c
1227
kfree(tx_ring);
drivers/net/ethernet/broadcom/b44.c
1231
bp->tx_ring = tx_ring;
drivers/net/ethernet/broadcom/b44.h
363
struct dma_desc *rx_ring, *tx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
198
struct bcm4908_enet_dma_ring *tx_ring = &enet->tx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
208
size = tx_ring->length * sizeof(struct bcm4908_enet_dma_ring_bd);
drivers/net/ethernet/broadcom/bcm4908_enet.c
209
if (tx_ring->cpu_addr)
drivers/net/ethernet/broadcom/bcm4908_enet.c
210
dma_free_coherent(dev, size, tx_ring->cpu_addr, tx_ring->dma_addr);
drivers/net/ethernet/broadcom/bcm4908_enet.c
211
kfree(tx_ring->slots);
drivers/net/ethernet/broadcom/bcm4908_enet.c
216
struct bcm4908_enet_dma_ring *tx_ring = &enet->tx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
221
tx_ring->length = ENET_TX_BDS_NUM;
drivers/net/ethernet/broadcom/bcm4908_enet.c
222
tx_ring->is_tx = 1;
drivers/net/ethernet/broadcom/bcm4908_enet.c
223
tx_ring->cfg_block = ENET_DMA_CH_TX_CFG;
drivers/net/ethernet/broadcom/bcm4908_enet.c
224
tx_ring->st_ram_block = ENET_DMA_CH_TX_STATE_RAM;
drivers/net/ethernet/broadcom/bcm4908_enet.c
225
err = bcm4908_dma_alloc_buf_descs(enet, tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
247
struct bcm4908_enet_dma_ring *rings[] = { &enet->rx_ring, &enet->tx_ring };
drivers/net/ethernet/broadcom/bcm4908_enet.c
352
bcm4908_enet_dma_ring_init(enet, &enet->tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
438
ring = (irq == enet->irq_tx) ? &enet->tx_ring : &enet->rx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
451
struct bcm4908_enet_dma_ring *tx_ring = &enet->tx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
483
napi_enable(&tx_ring->napi);
drivers/net/ethernet/broadcom/bcm4908_enet.c
484
bcm4908_enet_dma_ring_intrs_ack(enet, tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
485
bcm4908_enet_dma_ring_intrs_on(enet, tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
501
struct bcm4908_enet_dma_ring *tx_ring = &enet->tx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
507
napi_disable(&tx_ring->napi);
drivers/net/ethernet/broadcom/bcm4908_enet.c
511
bcm4908_enet_dma_tx_ring_disable(enet, &enet->tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
524
struct bcm4908_enet_dma_ring *ring = &enet->tx_ring;
drivers/net/ethernet/broadcom/bcm4908_enet.c
534
napi_schedule(&enet->tx_ring.napi);
drivers/net/ethernet/broadcom/bcm4908_enet.c
573
bcm4908_enet_dma_tx_ring_enable(enet, &enet->tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
653
struct bcm4908_enet_dma_ring *tx_ring = container_of(napi, struct bcm4908_enet_dma_ring, napi);
drivers/net/ethernet/broadcom/bcm4908_enet.c
654
struct bcm4908_enet *enet = container_of(tx_ring, struct bcm4908_enet, tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
661
while (handled < weight && tx_ring->read_idx != tx_ring->write_idx) {
drivers/net/ethernet/broadcom/bcm4908_enet.c
662
buf_desc = &tx_ring->buf_desc[tx_ring->read_idx];
drivers/net/ethernet/broadcom/bcm4908_enet.c
665
slot = &tx_ring->slots[tx_ring->read_idx];
drivers/net/ethernet/broadcom/bcm4908_enet.c
673
if (++tx_ring->read_idx == tx_ring->length)
drivers/net/ethernet/broadcom/bcm4908_enet.c
674
tx_ring->read_idx = 0;
drivers/net/ethernet/broadcom/bcm4908_enet.c
683
bcm4908_enet_dma_ring_intrs_on(enet, tx_ring);
drivers/net/ethernet/broadcom/bcm4908_enet.c
754
netif_napi_add_tx(netdev, &enet->tx_ring.napi, bcm4908_enet_poll_tx);
drivers/net/ethernet/broadcom/bcm4908_enet.c
777
netif_napi_del(&enet->tx_ring.napi);
drivers/net/ethernet/broadcom/bcm4908_enet.c
85
struct bcm4908_enet_dma_ring tx_ring;
drivers/net/ethernet/broadcom/bcmsysport.c
2269
struct bcm_sysport_tx_ring *tx_ring;
drivers/net/ethernet/broadcom/bcmsysport.c
2278
tx_ring = priv->ring_map[q + port * priv->per_port_num_tx_queues];
drivers/net/ethernet/broadcom/bcmsysport.c
2280
if (unlikely(!tx_ring))
drivers/net/ethernet/broadcom/bcmsysport.c
2283
return tx_ring->index;
drivers/net/ethernet/broadcom/bgmac.c
1156
bgmac_dma_tx_free(bgmac, &bgmac->tx_ring[0]);
drivers/net/ethernet/broadcom/bgmac.c
1230
ring = &bgmac->tx_ring[0];
drivers/net/ethernet/broadcom/bgmac.c
593
bgmac_dma_tx_ring_free(bgmac, &bgmac->tx_ring[i]);
drivers/net/ethernet/broadcom/bgmac.c
604
bgmac_dma_ring_desc_free(bgmac, &bgmac->tx_ring[i],
drivers/net/ethernet/broadcom/bgmac.c
632
ring = &bgmac->tx_ring[i];
drivers/net/ethernet/broadcom/bgmac.c
692
ring = &bgmac->tx_ring[i];
drivers/net/ethernet/broadcom/bgmac.c
918
bgmac_dma_tx_reset(bgmac, &bgmac->tx_ring[i]);
drivers/net/ethernet/broadcom/bgmac.h
462
struct bgmac_dma_ring tx_ring[BGMAC_MAX_TX_RINGS];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
1363
struct bnge_tx_ring_info *txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
1584
struct bnge_tx_ring_info *txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
2130
bnge_hwrm_tx_ring_free(bn, &bn->tx_ring[i], close_path);
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
2440
if (bn->tx_ring) {
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
2442
txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
2463
txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
313
bn->tx_ring[n].tx_cpr = cpr;
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
431
struct bnge_tx_ring_info *txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
684
struct bnge_tx_ring_info *txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
699
struct bnge_tx_ring_info *txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
866
kfree(bn->tx_ring);
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
867
bn->tx_ring = NULL;
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
915
bn->tx_ring = kzalloc_objs(struct bnge_tx_ring_info, bd->tx_nr_rings);
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
916
if (!bn->tx_ring)
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
930
struct bnge_tx_ring_info *txr = &bn->tx_ring[i];
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
942
bnapi2->tx_ring[txr->tx_napi_idx] = txr;
drivers/net/ethernet/broadcom/bnge/bnge_netdev.h
262
struct bnge_tx_ring_info *tx_ring;
drivers/net/ethernet/broadcom/bnge/bnge_netdev.h
333
for (iter = 0, txr = (bnapi)->tx_ring[0]; txr; \
drivers/net/ethernet/broadcom/bnge/bnge_netdev.h
335
(bnapi)->tx_ring[++iter] : NULL)
drivers/net/ethernet/broadcom/bnge/bnge_netdev.h
475
struct bnge_tx_ring_info *tx_ring[BNGE_MAX_TXR_PER_NAPI];
drivers/net/ethernet/broadcom/bnge/bnge_txrx.c
1201
txr = bnapi->tx_ring[TX_OPAQUE_RING(opaque)];
drivers/net/ethernet/broadcom/bnge/bnge_txrx.c
1452
txr = &bn->tx_ring[bn->tx_ring_map[i]];
drivers/net/ethernet/broadcom/bnx2.c
2844
struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
3387
struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
3481
struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
5118
txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
5170
txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
5418
struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
5804
txr = &tx_napi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
6589
txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
697
struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.c
749
struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
drivers/net/ethernet/broadcom/bnx2.h
6782
struct bnx2_tx_ring_info tx_ring;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
11907
if (bp->tx_ring) {
drivers/net/ethernet/broadcom/bnxt/bnxt.c
11909
txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
11927
txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15958
if (!bp->tx_ring)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15961
bnapi = bp->tx_ring[bp->tx_ring_map[i]].bnapi;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
3050
txr = bnapi->tx_ring[TX_OPAQUE_RING(opaque)];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
3107
struct bnxt_tx_ring_info *txr = bnapi->tx_ring[0];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
3472
if (!bp->tx_ring)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
3476
struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
3981
if (!bp->tx_ring)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
3985
struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4030
struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4254
bp->tx_ring[n].tx_cpr = cpr2;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4603
struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
495
txr = &bp->tx_ring[bp->tx_ring_map[i]];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5473
kfree(bp->tx_ring);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5474
bp->tx_ring = NULL;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5535
bp->tx_ring = kzalloc_objs(struct bnxt_tx_ring_info,
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5537
if (!bp->tx_ring)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5552
struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5566
bnapi2->tx_ring[txr->tx_napi_idx] = txr;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
5571
bnapi2->tx_ring[0] = txr;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
7429
struct bnxt_tx_ring_info *txr = &bp->tx_ring[i];
drivers/net/ethernet/broadcom/bnxt/bnxt.c
7618
bnxt_hwrm_tx_ring_free(bp, &bp->tx_ring[i], close_path);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
8446
if (bnapi->rx_ring && bnapi->tx_ring[0]) {
drivers/net/ethernet/broadcom/bnxt/bnxt.h
1217
for (iter = 0, txr = (bnapi)->tx_ring[0]; txr; \
drivers/net/ethernet/broadcom/bnxt/bnxt.h
1219
(bnapi)->tx_ring[++iter] : NULL)
drivers/net/ethernet/broadcom/bnxt/bnxt.h
1228
struct bnxt_tx_ring_info *tx_ring[BNXT_MAX_TXR_PER_NAPI];
drivers/net/ethernet/broadcom/bnxt/bnxt.h
2359
struct bnxt_tx_ring_info *tx_ring;
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
5127
struct bnxt_tx_ring_info *txr = &bp->tx_ring[0];
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
866
txr = bnapi->tx_ring[TX_OPAQUE_RING(opaque)];
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
123
struct bnxt_tx_ring_info *txr = bnapi->tx_ring[0];
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
245
txr = rxr->bnapi->tx_ring[0];
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
348
txr = &bp->tx_ring[ring];
drivers/net/ethernet/broadcom/genet/bcmgenet.c
3166
struct bcmgenet_tx_ring *tx_ring;
drivers/net/ethernet/broadcom/genet/bcmgenet.c
3198
tx_ring = &priv->tx_rings[index];
drivers/net/ethernet/broadcom/genet/bcmgenet.c
3200
if (likely(napi_schedule_prep(&tx_ring->napi))) {
drivers/net/ethernet/broadcom/genet/bcmgenet.c
3201
bcmgenet_tx_ring_int_disable(tx_ring);
drivers/net/ethernet/broadcom/genet/bcmgenet.c
3202
__napi_schedule_irqoff(&tx_ring->napi);
drivers/net/ethernet/broadcom/tg3.c
6576
if (tnapi->tx_ring[sw_idx].len_flags & TXD_FLAG_HWTSTAMP) {
drivers/net/ethernet/broadcom/tg3.c
7789
tg3_tx_set_bd(&tnapi->tx_ring[*entry], map,
drivers/net/ethernet/broadcom/tg3.c
7800
tg3_tx_set_bd(&tnapi->tx_ring[*entry], map,
drivers/net/ethernet/broadcom/tg3.c
7810
tg3_tx_set_bd(&tnapi->tx_ring[*entry], map,
drivers/net/ethernet/broadcom/tg3.c
8685
if (tnapi->tx_ring)
drivers/net/ethernet/broadcom/tg3.c
8686
memset(tnapi->tx_ring, 0, TG3_TX_RING_BYTES);
drivers/net/ethernet/broadcom/tg3.c
8709
if (tnapi->tx_ring) {
drivers/net/ethernet/broadcom/tg3.c
8711
tnapi->tx_ring, tnapi->tx_desc_mapping);
drivers/net/ethernet/broadcom/tg3.c
8712
tnapi->tx_ring = NULL;
drivers/net/ethernet/broadcom/tg3.c
8737
tnapi->tx_ring = dma_alloc_coherent(&tp->pdev->dev,
drivers/net/ethernet/broadcom/tg3.c
8741
if (!tnapi->tx_ring)
drivers/net/ethernet/broadcom/tg3.c
9643
if (!tnapi->tx_ring)
drivers/net/ethernet/broadcom/tg3.h
3028
struct tg3_tx_buffer_desc *tx_ring;
drivers/net/ethernet/cadence/macb.h
1253
struct macb_dma_desc *tx_ring;
drivers/net/ethernet/cadence/macb_main.c
157
return &queue->tx_ring[index];
drivers/net/ethernet/cadence/macb_main.c
2548
dma_free_coherent(dev, size, bp->queues[0].tx_ring, bp->queues[0].tx_ring_dma);
drivers/net/ethernet/cadence/macb_main.c
2556
queue->tx_ring = NULL;
drivers/net/ethernet/cadence/macb_main.c
2628
queue->tx_ring = tx + macb_tx_ring_size_per_queue(bp) * q;
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
1236
kfree(p->tx_ring);
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
125
u64 *tx_ring;
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
1270
kfree(p->tx_ring);
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
1309
p->tx_ring[p->tx_next] = re.d64;
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
276
re.d64 = p->tx_ring[p->tx_next_clean];
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
980
p->tx_ring = kzalloc(ring_size_to_bytes(OCTEON_MGMT_TX_RING_SIZE),
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
982
if (!p->tx_ring)
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
985
dma_map_single(p->dev, p->tx_ring,
drivers/net/ethernet/dec/tulip/de2104x.c
1312
memset(de->tx_ring, 0, sizeof(struct de_desc) * DE_TX_RING_SIZE);
drivers/net/ethernet/dec/tulip/de2104x.c
1313
de->tx_ring[DE_TX_RING_SIZE - 1].opts2 = cpu_to_le32(RingEnd);
drivers/net/ethernet/dec/tulip/de2104x.c
1327
de->tx_ring = &de->rx_ring[DE_RX_RING_SIZE];
drivers/net/ethernet/dec/tulip/de2104x.c
1338
memset(de->tx_ring, 0, sizeof(struct de_desc) * DE_TX_RING_SIZE);
drivers/net/ethernet/dec/tulip/de2104x.c
1339
de->tx_ring[DE_TX_RING_SIZE - 1].opts2 = cpu_to_le32(RingEnd);
drivers/net/ethernet/dec/tulip/de2104x.c
1379
de->tx_ring = NULL;
drivers/net/ethernet/dec/tulip/de2104x.c
301
struct de_desc *tx_ring;
drivers/net/ethernet/dec/tulip/de2104x.c
549
status = le32_to_cpu(de->tx_ring[tx_tail].opts1);
drivers/net/ethernet/dec/tulip/de2104x.c
624
txd = &de->tx_ring[entry];
drivers/net/ethernet/dec/tulip/de2104x.c
759
dummy_txd = &de->tx_ring[entry];
drivers/net/ethernet/dec/tulip/de2104x.c
775
txd = &de->tx_ring[entry];
drivers/net/ethernet/dec/tulip/interrupt.c
598
int status = le32_to_cpu(tp->tx_ring[entry].status);
drivers/net/ethernet/dec/tulip/tulip.h
405
struct tulip_tx_desc *tx_ring;
drivers/net/ethernet/dec/tulip/tulip_core.c
1143
tp->tx_ring[entry].length =
drivers/net/ethernet/dec/tulip/tulip_core.c
1145
tp->tx_ring[entry].buffer1 = 0;
drivers/net/ethernet/dec/tulip/tulip_core.c
1161
tp->tx_ring[entry].length = cpu_to_le32(tx_flags);
drivers/net/ethernet/dec/tulip/tulip_core.c
1162
tp->tx_ring[entry].buffer1 =
drivers/net/ethernet/dec/tulip/tulip_core.c
1164
tp->tx_ring[entry].status = cpu_to_le32(DescOwned);
drivers/net/ethernet/dec/tulip/tulip_core.c
1166
tp->tx_ring[dummy].status = cpu_to_le32(DescOwned);
drivers/net/ethernet/dec/tulip/tulip_core.c
1435
tp->tx_ring = (struct tulip_tx_desc *)(tp->rx_ring + RX_RING_SIZE);
drivers/net/ethernet/dec/tulip/tulip_core.c
360
tp->tx_ring[tp->cur_tx].length = cpu_to_le32(0x08000000 | 192);
drivers/net/ethernet/dec/tulip/tulip_core.c
361
tp->tx_ring[tp->cur_tx].buffer1 = cpu_to_le32(mapping);
drivers/net/ethernet/dec/tulip/tulip_core.c
362
tp->tx_ring[tp->cur_tx].status = cpu_to_le32(DescOwned);
drivers/net/ethernet/dec/tulip/tulip_core.c
586
printk(KERN_DEBUG " Tx ring %p: ", tp->tx_ring);
drivers/net/ethernet/dec/tulip/tulip_core.c
588
pr_cont(" %08x", (unsigned int)tp->tx_ring[i].status);
drivers/net/ethernet/dec/tulip/tulip_core.c
646
tp->tx_ring[i].status = 0x00000000;
drivers/net/ethernet/dec/tulip/tulip_core.c
647
tp->tx_ring[i].buffer2 = cpu_to_le32(tp->tx_ring_dma + sizeof(struct tulip_tx_desc) * (i + 1));
drivers/net/ethernet/dec/tulip/tulip_core.c
649
tp->tx_ring[i-1].buffer2 = cpu_to_le32(tp->tx_ring_dma);
drivers/net/ethernet/dec/tulip/tulip_core.c
670
tp->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
drivers/net/ethernet/dec/tulip/tulip_core.c
685
tp->tx_ring[entry].length = cpu_to_le32(skb->len | flag);
drivers/net/ethernet/dec/tulip/tulip_core.c
688
tp->tx_ring[entry].status = cpu_to_le32(DescOwned);
drivers/net/ethernet/dec/tulip/tulip_core.c
708
int status = le32_to_cpu(tp->tx_ring[entry].status);
drivers/net/ethernet/dec/tulip/tulip_core.c
712
tp->tx_ring[entry].status = 0;
drivers/net/ethernet/dec/tulip/winbond-840.c
1000
np->tx_ring[entry].length = DescWholePkt | skb->len;
drivers/net/ethernet/dec/tulip/winbond-840.c
1004
np->tx_ring[entry].buffer2 = np->tx_addr[entry]+TX_BUFLIMIT;
drivers/net/ethernet/dec/tulip/winbond-840.c
1005
np->tx_ring[entry].length = DescWholePkt | (len << 11) | TX_BUFLIMIT;
drivers/net/ethernet/dec/tulip/winbond-840.c
1008
np->tx_ring[entry].length |= DescEndRing;
drivers/net/ethernet/dec/tulip/winbond-840.c
1024
np->tx_ring[entry].status = DescOwned;
drivers/net/ethernet/dec/tulip/winbond-840.c
1050
int tx_status = np->tx_ring[entry].status;
drivers/net/ethernet/dec/tulip/winbond-840.c
1498
printk(KERN_DEBUG" Tx ring at %p:\n", np->tx_ring);
drivers/net/ethernet/dec/tulip/winbond-840.c
1501
i, np->tx_ring[i].length,
drivers/net/ethernet/dec/tulip/winbond-840.c
1502
np->tx_ring[i].status, np->tx_ring[i].buffer1);
drivers/net/ethernet/dec/tulip/winbond-840.c
287
struct w840_tx_desc *tx_ring;
drivers/net/ethernet/dec/tulip/winbond-840.c
787
np->tx_ring = (struct w840_tx_desc*)&np->rx_ring[RX_RING_SIZE];
drivers/net/ethernet/dec/tulip/winbond-840.c
818
np->tx_ring[i].status = 0;
drivers/net/ethernet/dec/tulip/winbond-840.c
926
printk(KERN_DEBUG " Tx ring %p: ", np->tx_ring);
drivers/net/ethernet/dec/tulip/winbond-840.c
928
printk(KERN_CONT " %08x", np->tx_ring[i].status);
drivers/net/ethernet/dec/tulip/winbond-840.c
998
np->tx_ring[entry].buffer1 = np->tx_addr[entry];
drivers/net/ethernet/dlink/dl2k.c
1824
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
drivers/net/ethernet/dlink/dl2k.c
242
np->tx_ring = ring_space;
drivers/net/ethernet/dlink/dl2k.c
297
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
drivers/net/ethernet/dlink/dl2k.c
463
desc_to_dma(&np->tx_ring[i]),
drivers/net/ethernet/dlink/dl2k.c
481
np->tx_ring[i].status = cpu_to_le64(TFDDone);
drivers/net/ethernet/dlink/dl2k.c
499
np->tx_ring[i].next_desc = cpu_to_le64(np->tx_ring_dma +
drivers/net/ethernet/dlink/dl2k.c
738
txdesc = &np->tx_ring[entry];
drivers/net/ethernet/dlink/dl2k.c
846
if (!(np->tx_ring[entry].status & cpu_to_le64(TFDDone)))
drivers/net/ethernet/dlink/dl2k.c
850
desc_to_dma(&np->tx_ring[entry]), skb->len,
drivers/net/ethernet/dlink/dl2k.h
367
struct netdev_desc *tx_ring;
drivers/net/ethernet/dlink/sundance.c
1058
np->tx_ring[i].status = 0;
drivers/net/ethernet/dlink/sundance.c
1067
&np->tx_ring[(np->cur_tx - 1) % TX_RING_SIZE];
drivers/net/ethernet/dlink/sundance.c
1072
txdesc = &np->tx_ring[entry];
drivers/net/ethernet/dlink/sundance.c
1098
txdesc = &np->tx_ring[entry];
drivers/net/ethernet/dlink/sundance.c
1152
np->tx_ring[i].next_desc = 0;
drivers/net/ethernet/dlink/sundance.c
1157
le32_to_cpu(np->tx_ring[i].frag.addr),
drivers/net/ethernet/dlink/sundance.c
1266
np->tx_ring[entry].status) >> 2) & 0xff;
drivers/net/ethernet/dlink/sundance.c
1268
!(le32_to_cpu(np->tx_ring[entry].status)
drivers/net/ethernet/dlink/sundance.c
1277
le32_to_cpu(np->tx_ring[entry].frag.addr),
drivers/net/ethernet/dlink/sundance.c
1281
np->tx_ring[entry].frag.addr = 0;
drivers/net/ethernet/dlink/sundance.c
1282
np->tx_ring[entry].frag.length = 0;
drivers/net/ethernet/dlink/sundance.c
1290
if (!(le32_to_cpu(np->tx_ring[entry].status)
drivers/net/ethernet/dlink/sundance.c
1296
le32_to_cpu(np->tx_ring[entry].frag.addr),
drivers/net/ethernet/dlink/sundance.c
1300
np->tx_ring[entry].frag.addr = 0;
drivers/net/ethernet/dlink/sundance.c
1301
np->tx_ring[entry].frag.length = 0;
drivers/net/ethernet/dlink/sundance.c
1876
i, np->tx_ring[i].status, np->tx_ring[i].frag.addr,
drivers/net/ethernet/dlink/sundance.c
1877
np->tx_ring[i].frag.length);
drivers/net/ethernet/dlink/sundance.c
1906
np->tx_ring[i].next_desc = 0;
drivers/net/ethernet/dlink/sundance.c
1910
le32_to_cpu(np->tx_ring[i].frag.addr),
drivers/net/ethernet/dlink/sundance.c
1930
np->tx_ring, np->tx_ring_dma);
drivers/net/ethernet/dlink/sundance.c
364
struct netdev_desc *tx_ring;
drivers/net/ethernet/dlink/sundance.c
551
np->tx_ring = (struct netdev_desc *)ring_space;
drivers/net/ethernet/dlink/sundance.c
697
np->tx_ring, np->tx_ring_dma);
drivers/net/ethernet/dlink/sundance.c
979
(unsigned long long)(np->tx_ring_dma + i*sizeof(*np->tx_ring)),
drivers/net/ethernet/dlink/sundance.c
980
le32_to_cpu(np->tx_ring[i].next_desc),
drivers/net/ethernet/dlink/sundance.c
981
le32_to_cpu(np->tx_ring[i].status),
drivers/net/ethernet/dlink/sundance.c
982
(le32_to_cpu(np->tx_ring[i].status) >> 2) & 0xff,
drivers/net/ethernet/dlink/sundance.c
983
le32_to_cpu(np->tx_ring[i].frag.addr),
drivers/net/ethernet/dlink/sundance.c
984
le32_to_cpu(np->tx_ring[i].frag.length));
drivers/net/ethernet/fealnx.c
1146
iowrite32(np->tx_ring_dma + ((char*)np->cur_tx - (char*)np->tx_ring),
drivers/net/ethernet/fealnx.c
1205
printk(KERN_DEBUG " Tx ring %p: ", np->tx_ring);
drivers/net/ethernet/fealnx.c
1207
printk(KERN_CONT " %4.4x", np->tx_ring[i].status);
drivers/net/ethernet/fealnx.c
1271
np->cur_tx = &np->tx_ring[0];
drivers/net/ethernet/fealnx.c
1272
np->cur_tx_copy = &np->tx_ring[0];
drivers/net/ethernet/fealnx.c
1277
np->tx_ring[i].status = 0;
drivers/net/ethernet/fealnx.c
1279
np->tx_ring[i].next_desc = np->tx_ring_dma +
drivers/net/ethernet/fealnx.c
1281
np->tx_ring[i].next_desc_logical = &np->tx_ring[i + 1];
drivers/net/ethernet/fealnx.c
1282
np->tx_ring[i].skbuff = NULL;
drivers/net/ethernet/fealnx.c
1286
np->tx_ring[i - 1].next_desc = np->tx_ring_dma;
drivers/net/ethernet/fealnx.c
1287
np->tx_ring[i - 1].next_desc_logical = &np->tx_ring[0];
drivers/net/ethernet/fealnx.c
1379
np->cur_tx = &np->tx_ring[0];
drivers/net/ethernet/fealnx.c
1380
np->cur_tx_copy = &np->tx_ring[0];
drivers/net/ethernet/fealnx.c
1385
cur = &np->tx_ring[i];
drivers/net/ethernet/fealnx.c
1397
cur->next_desc_logical = &np->tx_ring[i + 1];
drivers/net/ethernet/fealnx.c
1400
np->tx_ring[TX_RING_SIZE - 1].next_desc = np->tx_ring_dma;
drivers/net/ethernet/fealnx.c
1401
np->tx_ring[TX_RING_SIZE - 1].next_desc_logical = &np->tx_ring[0];
drivers/net/ethernet/fealnx.c
1923
struct sk_buff *skb = np->tx_ring[i].skbuff;
drivers/net/ethernet/fealnx.c
1927
np->tx_ring[i].buffer, skb->len,
drivers/net/ethernet/fealnx.c
1930
np->tx_ring[i].skbuff = NULL;
drivers/net/ethernet/fealnx.c
371
struct fealnx_desc *tx_ring;
drivers/net/ethernet/fealnx.c
563
np->tx_ring = ring_space;
drivers/net/ethernet/fealnx.c
663
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
drivers/net/ethernet/fealnx.c
685
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1001
if (enetc_bd_unused(tx_ring) < enetc_lso_count_descs(skb)) {
drivers/net/ethernet/freescale/enetc/enetc.c
1002
netif_stop_subqueue(ndev, tx_ring->index);
drivers/net/ethernet/freescale/enetc/enetc.c
1006
count = enetc_lso_hw_offload(tx_ring, skb);
drivers/net/ethernet/freescale/enetc/enetc.c
1008
if (enetc_bd_unused(tx_ring) < tso_count_descs(skb)) {
drivers/net/ethernet/freescale/enetc/enetc.c
1009
netif_stop_subqueue(ndev, tx_ring->index);
drivers/net/ethernet/freescale/enetc/enetc.c
1014
count = enetc_map_tx_tso_buffs(tx_ring, skb);
drivers/net/ethernet/freescale/enetc/enetc.c
1023
if (enetc_bd_unused(tx_ring) < ENETC_TXBDS_NEEDED(count)) {
drivers/net/ethernet/freescale/enetc/enetc.c
1024
netif_stop_subqueue(ndev, tx_ring->index);
drivers/net/ethernet/freescale/enetc/enetc.c
1029
count = enetc_map_tx_buffs(tx_ring, skb);
drivers/net/ethernet/freescale/enetc/enetc.c
1036
if (enetc_bd_unused(tx_ring) < ENETC_TXBDS_MAX_NEEDED(priv->max_frags))
drivers/net/ethernet/freescale/enetc/enetc.c
1037
netif_stop_subqueue(ndev, tx_ring->index);
drivers/net/ethernet/freescale/enetc/enetc.c
1127
static int enetc_bd_ready_count(struct enetc_bdr *tx_ring, int ci)
drivers/net/ethernet/freescale/enetc/enetc.c
1129
int pi = enetc_rd_reg_hot(tx_ring->tcir) & ENETC_TBCIR_IDX_MASK;
drivers/net/ethernet/freescale/enetc/enetc.c
1131
return pi >= ci ? pi - ci : tx_ring->bd_count - ci + pi;
drivers/net/ethernet/freescale/enetc/enetc.c
1178
static void enetc_recycle_xdp_tx_buff(struct enetc_bdr *tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1181
struct enetc_ndev_priv *priv = netdev_priv(tx_ring->ndev);
drivers/net/ethernet/freescale/enetc/enetc.c
119
static void enetc_unmap_tx_buff(struct enetc_bdr *tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1191
rx_ring = enetc_rx_ring_from_xdp_tx_ring(priv, tx_ring);
drivers/net/ethernet/freescale/enetc/enetc.c
1217
static bool enetc_clean_tx_ring(struct enetc_bdr *tx_ring, int napi_budget)
drivers/net/ethernet/freescale/enetc/enetc.c
1220
struct net_device *ndev = tx_ring->ndev;
drivers/net/ethernet/freescale/enetc/enetc.c
1227
i = tx_ring->next_to_clean;
drivers/net/ethernet/freescale/enetc/enetc.c
1228
tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
1230
bds_to_clean = enetc_bd_ready_count(tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
1240
union enetc_tx_bd *txbd = ENETC_TXBD(*tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
1255
enetc_recycle_xdp_tx_buff(tx_ring, tx_swbd);
drivers/net/ethernet/freescale/enetc/enetc.c
1257
enetc_unmap_tx_buff(tx_ring, tx_swbd);
drivers/net/ethernet/freescale/enetc/enetc.c
127
dma_unmap_page(tx_ring->dev, tx_swbd->dma,
drivers/net/ethernet/freescale/enetc/enetc.c
1286
if (unlikely(i == tx_ring->bd_count)) {
drivers/net/ethernet/freescale/enetc/enetc.c
1288
tx_swbd = tx_ring->tx_swbd;
drivers/net/ethernet/freescale/enetc/enetc.c
1295
enetc_wr_reg_hot(tx_ring->idr, BIT(tx_ring->index) |
drivers/net/ethernet/freescale/enetc/enetc.c
1296
BIT(16 + tx_ring->index));
drivers/net/ethernet/freescale/enetc/enetc.c
1300
bds_to_clean = enetc_bd_ready_count(tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
1303
tx_ring->next_to_clean = i;
drivers/net/ethernet/freescale/enetc/enetc.c
1304
tx_ring->stats.packets += tx_frm_cnt;
drivers/net/ethernet/freescale/enetc/enetc.c
1305
tx_ring->stats.bytes += tx_byte_cnt;
drivers/net/ethernet/freescale/enetc/enetc.c
1306
tx_ring->stats.win_drop += tx_win_drop;
drivers/net/ethernet/freescale/enetc/enetc.c
1309
__netif_subqueue_stopped(ndev, tx_ring->index) &&
drivers/net/ethernet/freescale/enetc/enetc.c
131
dma_unmap_single(tx_ring->dev, tx_swbd->dma,
drivers/net/ethernet/freescale/enetc/enetc.c
1311
(enetc_bd_unused(tx_ring) >=
drivers/net/ethernet/freescale/enetc/enetc.c
1313
netif_wake_subqueue(ndev, tx_ring->index);
drivers/net/ethernet/freescale/enetc/enetc.c
136
static void enetc_free_tx_frame(struct enetc_bdr *tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
143
enetc_unmap_tx_buff(tx_ring, tx_swbd);
drivers/net/ethernet/freescale/enetc/enetc.c
155
static void enetc_update_tx_ring_tail(struct enetc_bdr *tx_ring)
drivers/net/ethernet/freescale/enetc/enetc.c
158
enetc_wr_reg_hot(tx_ring->tpir, tx_ring->next_to_use);
drivers/net/ethernet/freescale/enetc/enetc.c
1659
static void enetc_xdp_map_tx_buff(struct enetc_bdr *tx_ring, int i,
drivers/net/ethernet/freescale/enetc/enetc.c
1663
union enetc_tx_bd *txbd = ENETC_TXBD(*tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
1672
memcpy(&tx_ring->tx_swbd[i], tx_swbd, sizeof(*tx_swbd));
drivers/net/ethernet/freescale/enetc/enetc.c
1678
static bool enetc_xdp_tx(struct enetc_bdr *tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1684
if (unlikely(enetc_bd_unused(tx_ring) < ENETC_TXBDS_NEEDED(num_tx_swbd)))
drivers/net/ethernet/freescale/enetc/enetc.c
1692
i = tx_ring->next_to_use;
drivers/net/ethernet/freescale/enetc/enetc.c
1697
enetc_xdp_map_tx_buff(tx_ring, i, xdp_tx_swbd, frm_len);
drivers/net/ethernet/freescale/enetc/enetc.c
1701
union enetc_tx_bd *txbd = ENETC_TXBD(*tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
1706
enetc_bdr_idx_inc(tx_ring, &i);
drivers/net/ethernet/freescale/enetc/enetc.c
1709
tx_ring->next_to_use = i;
drivers/net/ethernet/freescale/enetc/enetc.c
1714
static int enetc_xdp_frame_to_xdp_tx_swbd(struct enetc_bdr *tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1727
dma = dma_map_single(tx_ring->dev, data, len, DMA_TO_DEVICE);
drivers/net/ethernet/freescale/enetc/enetc.c
1728
if (unlikely(dma_mapping_error(tx_ring->dev, dma))) {
drivers/net/ethernet/freescale/enetc/enetc.c
1729
netdev_err(tx_ring->ndev, "DMA map error\n");
drivers/net/ethernet/freescale/enetc/enetc.c
1754
dma = dma_map_single(tx_ring->dev, data, len, DMA_TO_DEVICE);
drivers/net/ethernet/freescale/enetc/enetc.c
1755
if (unlikely(dma_mapping_error(tx_ring->dev, dma))) {
drivers/net/ethernet/freescale/enetc/enetc.c
1758
enetc_unmap_tx_buff(tx_ring, &xdp_tx_arr[n]);
drivers/net/ethernet/freescale/enetc/enetc.c
1760
netdev_err(tx_ring->ndev, "DMA map error\n");
drivers/net/ethernet/freescale/enetc/enetc.c
1786
struct enetc_bdr *tx_ring;
drivers/net/ethernet/freescale/enetc/enetc.c
1796
tx_ring = priv->xdp_tx_ring[smp_processor_id()];
drivers/net/ethernet/freescale/enetc/enetc.c
1798
prefetchw(ENETC_TXBD(*tx_ring, tx_ring->next_to_use));
drivers/net/ethernet/freescale/enetc/enetc.c
1801
xdp_tx_bd_cnt = enetc_xdp_frame_to_xdp_tx_swbd(tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1807
if (unlikely(!enetc_xdp_tx(tx_ring, xdp_redirect_arr,
drivers/net/ethernet/freescale/enetc/enetc.c
1810
enetc_unmap_tx_buff(tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
1812
tx_ring->stats.xdp_tx_drops++;
drivers/net/ethernet/freescale/enetc/enetc.c
1820
enetc_update_tx_ring_tail(tx_ring);
drivers/net/ethernet/freescale/enetc/enetc.c
1822
tx_ring->stats.xdp_tx += xdp_tx_frm_cnt;
drivers/net/ethernet/freescale/enetc/enetc.c
1958
struct enetc_bdr *tx_ring;
drivers/net/ethernet/freescale/enetc/enetc.c
2036
tx_ring = priv->xdp_tx_ring[rx_ring->index];
drivers/net/ethernet/freescale/enetc/enetc.c
2039
tx_ring->stats.xdp_tx_drops++;
drivers/net/ethernet/freescale/enetc/enetc.c
2047
if (!enetc_xdp_tx(tx_ring, xdp_tx_arr, xdp_tx_bd_cnt)) {
drivers/net/ethernet/freescale/enetc/enetc.c
2049
tx_ring->stats.xdp_tx_drops++;
drivers/net/ethernet/freescale/enetc/enetc.c
2051
tx_ring->stats.xdp_tx++;
drivers/net/ethernet/freescale/enetc/enetc.c
2097
enetc_update_tx_ring_tail(tx_ring);
drivers/net/ethernet/freescale/enetc/enetc.c
2121
if (!enetc_clean_tx_ring(&v->tx_ring[i], budget))
drivers/net/ethernet/freescale/enetc/enetc.c
221
static void enetc_unwind_tx_frame(struct enetc_bdr *tx_ring, int count, int i)
drivers/net/ethernet/freescale/enetc/enetc.c
224
struct enetc_tx_swbd *tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
226
enetc_free_tx_frame(tx_ring, tx_swbd);
drivers/net/ethernet/freescale/enetc/enetc.c
2276
struct enetc_bdr *tx_ring = priv->tx_ring[i];
drivers/net/ethernet/freescale/enetc/enetc.c
2278
err = enetc_alloc_tx_resource(&tx_res[i], tx_ring->dev,
drivers/net/ethernet/freescale/enetc/enetc.c
2279
tx_ring->bd_count);
drivers/net/ethernet/freescale/enetc/enetc.c
228
i = tx_ring->bd_count;
drivers/net/ethernet/freescale/enetc/enetc.c
2378
static void enetc_assign_tx_resource(struct enetc_bdr *tx_ring,
drivers/net/ethernet/freescale/enetc/enetc.c
2381
tx_ring->bd_base = res ? res->bd_base : NULL;
drivers/net/ethernet/freescale/enetc/enetc.c
2382
tx_ring->bd_dma_base = res ? res->bd_dma_base : 0;
drivers/net/ethernet/freescale/enetc/enetc.c
2383
tx_ring->tx_swbd = res ? res->tx_swbd : NULL;
drivers/net/ethernet/freescale/enetc/enetc.c
2384
tx_ring->tso_headers = res ? res->tso_headers : NULL;
drivers/net/ethernet/freescale/enetc/enetc.c
2385
tx_ring->tso_headers_dma = res ? res->tso_headers_dma : 0;
drivers/net/ethernet/freescale/enetc/enetc.c
2405
enetc_assign_tx_resource(priv->tx_ring[i],
drivers/net/ethernet/freescale/enetc/enetc.c
2428
static void enetc_free_tx_ring(struct enetc_bdr *tx_ring)
drivers/net/ethernet/freescale/enetc/enetc.c
2432
for (i = 0; i < tx_ring->bd_count; i++) {
drivers/net/ethernet/freescale/enetc/enetc.c
2433
struct enetc_tx_swbd *tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
2435
enetc_free_tx_frame(tx_ring, tx_swbd);
drivers/net/ethernet/freescale/enetc/enetc.c
2464
enetc_free_tx_ring(priv->tx_ring[i]);
drivers/net/ethernet/freescale/enetc/enetc.c
2579
static void enetc_setup_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ring)
drivers/net/ethernet/freescale/enetc/enetc.c
2582
int idx = tx_ring->index;
drivers/net/ethernet/freescale/enetc/enetc.c
2586
lower_32_bits(tx_ring->bd_dma_base));
drivers/net/ethernet/freescale/enetc/enetc.c
2589
upper_32_bits(tx_ring->bd_dma_base));
drivers/net/ethernet/freescale/enetc/enetc.c
2591
WARN_ON(!IS_ALIGNED(tx_ring->bd_count, 64)); /* multiple of 64 */
drivers/net/ethernet/freescale/enetc/enetc.c
2593
ENETC_RTBLENR_LEN(tx_ring->bd_count));
drivers/net/ethernet/freescale/enetc/enetc.c
2598
tx_ring->next_to_use = enetc_txbdr_rd(hw, idx, ENETC_TBPIR);
drivers/net/ethernet/freescale/enetc/enetc.c
2599
tx_ring->next_to_clean = enetc_txbdr_rd(hw, idx, ENETC_TBCIR);
drivers/net/ethernet/freescale/enetc/enetc.c
2601
if (tx_ring->next_to_use != tx_ring->next_to_clean &&
drivers/net/ethernet/freescale/enetc/enetc.c
2603
tx_ring->next_to_use = 0;
drivers/net/ethernet/freescale/enetc/enetc.c
2604
tx_ring->next_to_clean = 0;
drivers/net/ethernet/freescale/enetc/enetc.c
2612
tbmr = ENETC_TBMR_SET_PRIO(tx_ring->prio);
drivers/net/ethernet/freescale/enetc/enetc.c
2613
if (tx_ring->ndev->features & NETIF_F_HW_VLAN_CTAG_TX)
drivers/net/ethernet/freescale/enetc/enetc.c
2619
tx_ring->tpir = hw->reg + ENETC_BDR(TX, idx, ENETC_TBPIR);
drivers/net/ethernet/freescale/enetc/enetc.c
2620
tx_ring->tcir = hw->reg + ENETC_BDR(TX, idx, ENETC_TBCIR);
drivers/net/ethernet/freescale/enetc/enetc.c
2621
tx_ring->idr = hw->reg + ENETC_SITXIDR;
drivers/net/ethernet/freescale/enetc/enetc.c
2682
enetc_setup_txbdr(hw, priv->tx_ring[i]);
drivers/net/ethernet/freescale/enetc/enetc.c
2688
static void enetc_enable_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ring)
drivers/net/ethernet/freescale/enetc/enetc.c
2690
int idx = tx_ring->index;
drivers/net/ethernet/freescale/enetc/enetc.c
2723
enetc_enable_txbdr(hw, priv->tx_ring[i]);
drivers/net/ethernet/freescale/enetc/enetc.c
2757
enetc_disable_txbdr(hw, priv->tx_ring[i]);
drivers/net/ethernet/freescale/enetc/enetc.c
2760
static void enetc_wait_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ring)
drivers/net/ethernet/freescale/enetc/enetc.c
2763
int idx = tx_ring->index;
drivers/net/ethernet/freescale/enetc/enetc.c
2773
netdev_warn(tx_ring->ndev, "timeout for tx ring #%d clear\n",
drivers/net/ethernet/freescale/enetc/enetc.c
2783
enetc_wait_txbdr(hw, priv->tx_ring[i]);
drivers/net/ethernet/freescale/enetc/enetc.c
2812
int idx = v->tx_ring[j].index;
drivers/net/ethernet/freescale/enetc/enetc.c
3143
priv->tx_ring[i]->prio);
drivers/net/ethernet/freescale/enetc/enetc.c
3150
struct enetc_bdr *tx_ring;
drivers/net/ethernet/freescale/enetc/enetc.c
3162
tx_ring = priv->tx_ring[i];
drivers/net/ethernet/freescale/enetc/enetc.c
3163
tx_ring->prio = 0;
drivers/net/ethernet/freescale/enetc/enetc.c
3164
enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio);
drivers/net/ethernet/freescale/enetc/enetc.c
3180
struct enetc_bdr *tx_ring;
drivers/net/ethernet/freescale/enetc/enetc.c
3204
tx_ring = priv->tx_ring[q];
drivers/net/ethernet/freescale/enetc/enetc.c
3212
tx_ring->prio = tc;
drivers/net/ethernet/freescale/enetc/enetc.c
3213
enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio);
drivers/net/ethernet/freescale/enetc/enetc.c
322
static int enetc_map_tx_buffs(struct enetc_bdr *tx_ring, struct sk_buff *skb)
drivers/net/ethernet/freescale/enetc/enetc.c
325
struct enetc_ndev_priv *priv = netdev_priv(tx_ring->ndev);
drivers/net/ethernet/freescale/enetc/enetc.c
3324
packets += priv->tx_ring[i]->stats.packets;
drivers/net/ethernet/freescale/enetc/enetc.c
3325
bytes += priv->tx_ring[i]->stats.bytes;
drivers/net/ethernet/freescale/enetc/enetc.c
3326
tx_dropped += priv->tx_ring[i]->stats.win_drop;
drivers/net/ethernet/freescale/enetc/enetc.c
343
enetc_tx_csum_offload_check(skb) && !tx_ring->tsd_enable) {
drivers/net/ethernet/freescale/enetc/enetc.c
3467
v = kzalloc_flex(*v, tx_ring, v_tx_rings);
drivers/net/ethernet/freescale/enetc/enetc.c
3508
bdr = &v->tx_ring[j];
drivers/net/ethernet/freescale/enetc/enetc.c
3513
priv->tx_ring[idx] = bdr;
drivers/net/ethernet/freescale/enetc/enetc.c
3539
priv->tx_ring[tx_ring_index] = NULL;
drivers/net/ethernet/freescale/enetc/enetc.c
3592
priv->xdp_tx_ring = &priv->tx_ring[first_xdp_tx_ring];
drivers/net/ethernet/freescale/enetc/enetc.c
370
i = tx_ring->next_to_use;
drivers/net/ethernet/freescale/enetc/enetc.c
371
txbd = ENETC_TXBD(*tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
374
dma = dma_map_single(tx_ring->dev, skb->data, len, DMA_TO_DEVICE);
drivers/net/ethernet/freescale/enetc/enetc.c
375
if (unlikely(dma_mapping_error(tx_ring->dev, dma)))
drivers/net/ethernet/freescale/enetc/enetc.c
381
tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
396
if (tx_ring->tsd_enable)
drivers/net/ethernet/freescale/enetc/enetc.c
417
if (unlikely(i == tx_ring->bd_count)) {
drivers/net/ethernet/freescale/enetc/enetc.c
419
tx_swbd = tx_ring->tx_swbd;
drivers/net/ethernet/freescale/enetc/enetc.c
420
txbd = ENETC_TXBD(*tx_ring, 0);
drivers/net/ethernet/freescale/enetc/enetc.c
446
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, len,
drivers/net/ethernet/freescale/enetc/enetc.c
448
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/freescale/enetc/enetc.c
458
if (unlikely(i == tx_ring->bd_count)) {
drivers/net/ethernet/freescale/enetc/enetc.c
460
tx_swbd = tx_ring->tx_swbd;
drivers/net/ethernet/freescale/enetc/enetc.c
461
txbd = ENETC_TXBD(*tx_ring, 0);
drivers/net/ethernet/freescale/enetc/enetc.c
480
tx_ring->tx_swbd[i].is_eof = true;
drivers/net/ethernet/freescale/enetc/enetc.c
481
tx_ring->tx_swbd[i].skb = skb;
drivers/net/ethernet/freescale/enetc/enetc.c
483
enetc_bdr_idx_inc(tx_ring, &i);
drivers/net/ethernet/freescale/enetc/enetc.c
484
tx_ring->next_to_use = i;
drivers/net/ethernet/freescale/enetc/enetc.c
488
enetc_update_tx_ring_tail(tx_ring);
drivers/net/ethernet/freescale/enetc/enetc.c
493
dev_err(tx_ring->dev, "DMA map error");
drivers/net/ethernet/freescale/enetc/enetc.c
495
enetc_unwind_tx_frame(tx_ring, count, i);
drivers/net/ethernet/freescale/enetc/enetc.c
500
static int enetc_map_tx_tso_hdr(struct enetc_bdr *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/freescale/enetc/enetc.c
511
addr = tx_ring->tso_headers_dma + *i * TSO_HEADER_SIZE;
drivers/net/ethernet/freescale/enetc/enetc.c
537
enetc_bdr_idx_inc(tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
538
txbd = ENETC_TXBD(*tx_ring, *i);
drivers/net/ethernet/freescale/enetc/enetc.c
539
tx_swbd = &tx_ring->tx_swbd[*i];
drivers/net/ethernet/freescale/enetc/enetc.c
557
static int enetc_map_tx_tso_data(struct enetc_bdr *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/freescale/enetc/enetc.c
568
addr = dma_map_single(tx_ring->dev, data, size, DMA_TO_DEVICE);
drivers/net/ethernet/freescale/enetc/enetc.c
569
if (unlikely(dma_mapping_error(tx_ring->dev, addr))) {
drivers/net/ethernet/freescale/enetc/enetc.c
570
netdev_err(tx_ring->ndev, "DMA map error\n");
drivers/net/ethernet/freescale/enetc/enetc.c
623
static void enetc_tso_complete_csum(struct enetc_bdr *tx_ring, struct tso_t *tso,
drivers/net/ethernet/freescale/enetc/enetc.c
685
static void enetc_lso_map_hdr(struct enetc_bdr *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/freescale/enetc/enetc.c
696
txbd = ENETC_TXBD(*tx_ring, *i);
drivers/net/ethernet/freescale/enetc/enetc.c
697
tx_swbd = &tx_ring->tx_swbd[*i];
drivers/net/ethernet/freescale/enetc/enetc.c
701
hdr = tx_ring->tso_headers + *i * TSO_HEADER_SIZE;
drivers/net/ethernet/freescale/enetc/enetc.c
703
addr = tx_ring->tso_headers_dma + *i * TSO_HEADER_SIZE;
drivers/net/ethernet/freescale/enetc/enetc.c
749
enetc_bdr_idx_inc(tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
750
txbd = ENETC_TXBD(*tx_ring, *i);
drivers/net/ethernet/freescale/enetc/enetc.c
751
tx_swbd = &tx_ring->tx_swbd[*i];
drivers/net/ethernet/freescale/enetc/enetc.c
769
static int enetc_lso_map_data(struct enetc_bdr *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/freescale/enetc/enetc.c
781
dma = dma_map_single(tx_ring->dev, skb->data + lso->hdr_len,
drivers/net/ethernet/freescale/enetc/enetc.c
783
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/freescale/enetc/enetc.c
786
enetc_bdr_idx_inc(tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
787
txbd = ENETC_TXBD(*tx_ring, *i);
drivers/net/ethernet/freescale/enetc/enetc.c
788
tx_swbd = &tx_ring->tx_swbd[*i];
drivers/net/ethernet/freescale/enetc/enetc.c
808
dma = skb_frag_dma_map(tx_ring->dev, frag);
drivers/net/ethernet/freescale/enetc/enetc.c
809
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/freescale/enetc/enetc.c
813
enetc_bdr_idx_inc(tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
814
txbd = ENETC_TXBD(*tx_ring, *i);
drivers/net/ethernet/freescale/enetc/enetc.c
815
tx_swbd = &tx_ring->tx_swbd[*i];
drivers/net/ethernet/freescale/enetc/enetc.c
840
static int enetc_lso_hw_offload(struct enetc_bdr *tx_ring, struct sk_buff *skb)
drivers/net/ethernet/freescale/enetc/enetc.c
848
i = tx_ring->next_to_use;
drivers/net/ethernet/freescale/enetc/enetc.c
850
enetc_lso_map_hdr(tx_ring, skb, &i, &lso);
drivers/net/ethernet/freescale/enetc/enetc.c
854
err = enetc_lso_map_data(tx_ring, skb, &i, &lso, &count);
drivers/net/ethernet/freescale/enetc/enetc.c
859
enetc_bdr_idx_inc(tx_ring, &i);
drivers/net/ethernet/freescale/enetc/enetc.c
860
tx_ring->next_to_use = i;
drivers/net/ethernet/freescale/enetc/enetc.c
861
enetc_update_tx_ring_tail(tx_ring);
drivers/net/ethernet/freescale/enetc/enetc.c
867
tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
868
enetc_free_tx_frame(tx_ring, tx_swbd);
drivers/net/ethernet/freescale/enetc/enetc.c
870
i = tx_ring->bd_count;
drivers/net/ethernet/freescale/enetc/enetc.c
877
static int enetc_map_tx_tso_buffs(struct enetc_bdr *tx_ring, struct sk_buff *skb)
drivers/net/ethernet/freescale/enetc/enetc.c
879
struct enetc_ndev_priv *priv = netdev_priv(tx_ring->ndev);
drivers/net/ethernet/freescale/enetc/enetc.c
891
i = tx_ring->next_to_use;
drivers/net/ethernet/freescale/enetc/enetc.c
897
txbd = ENETC_TXBD(*tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
898
tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
906
hdr = tx_ring->tso_headers + i * TSO_HEADER_SIZE;
drivers/net/ethernet/freescale/enetc/enetc.c
911
count += enetc_map_tx_tso_hdr(tx_ring, skb, tx_swbd, txbd,
drivers/net/ethernet/freescale/enetc/enetc.c
921
enetc_bdr_idx_inc(tx_ring, &i);
drivers/net/ethernet/freescale/enetc/enetc.c
922
txbd = ENETC_TXBD(*tx_ring, i);
drivers/net/ethernet/freescale/enetc/enetc.c
923
tx_swbd = &tx_ring->tx_swbd[i];
drivers/net/ethernet/freescale/enetc/enetc.c
934
err = enetc_map_tx_tso_data(tx_ring, skb, tx_swbd, txbd,
drivers/net/ethernet/freescale/enetc/enetc.c
939
i = tx_ring->bd_count;
drivers/net/ethernet/freescale/enetc/enetc.c
95
struct enetc_bdr *tx_ring)
drivers/net/ethernet/freescale/enetc/enetc.c
954
enetc_tso_complete_csum(tx_ring, &tso, skb, hdr, pos, csum);
drivers/net/ethernet/freescale/enetc/enetc.c
960
enetc_bdr_idx_inc(tx_ring, &i);
drivers/net/ethernet/freescale/enetc/enetc.c
963
tx_ring->next_to_use = i;
drivers/net/ethernet/freescale/enetc/enetc.c
964
enetc_update_tx_ring_tail(tx_ring);
drivers/net/ethernet/freescale/enetc/enetc.c
969
dev_err(tx_ring->dev, "DMA map error");
drivers/net/ethernet/freescale/enetc/enetc.c
97
int index = &priv->tx_ring[tx_ring->index] - priv->xdp_tx_ring;
drivers/net/ethernet/freescale/enetc/enetc.c
972
enetc_unwind_tx_frame(tx_ring, count, i);
drivers/net/ethernet/freescale/enetc/enetc.c
982
struct enetc_bdr *tx_ring;
drivers/net/ethernet/freescale/enetc/enetc.c
994
tx_ring = priv->tx_ring[skb->queue_mapping];
drivers/net/ethernet/freescale/enetc/enetc.h
388
struct enetc_bdr tx_ring[] __counted_by(count_tx_rings);
drivers/net/ethernet/freescale/enetc/enetc.h
458
struct enetc_bdr *tx_ring[16];
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
297
data[o++] = priv->tx_ring[i]->stats.packets;
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
298
data[o++] = priv->tx_ring[i]->stats.xdp_tx;
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
299
data[o++] = priv->tx_ring[i]->stats.xdp_tx_drops;
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
300
data[o++] = priv->tx_ring[i]->stats.win_drop;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
135
priv->tx_ring[i]->stats.win_drop = 0;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
167
window_drops += priv->tx_ring[i]->stats.win_drop;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
179
stats->window_drops = priv->tx_ring[queue]->stats.win_drop;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
370
priv->tx_ring[tc]->tsd_enable = qopt->enable;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
64
if (priv->tx_ring[i]->tsd_enable)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
110
if (fep->tx_free == fep->tx_ring)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
350
fep->tx_free = fep->tx_ring;
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
376
for (i = 0, bdp = fep->tx_bd_base; i < fep->tx_ring; i++, bdp++) {
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
380
CBDW_SC(bdp, (i < fep->tx_ring - 1) ? 0 : BD_SC_WRAP);
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
392
for (i = 0, bdp = fep->tx_bd_base; i < fep->tx_ring; i++, bdp++) {
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
890
fpi->tx_ring = TX_RING_SIZE;
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
904
(fpi->rx_ring + fpi->tx_ring) +
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
905
sizeof(char) * fpi->tx_ring;
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
949
fpi->tx_ring);
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
963
fep->tx_ring = fpi->tx_ring;
drivers/net/ethernet/freescale/fs_enet/fs_enet.h
117
int rx_ring, tx_ring; /* number of buffers on rx */
drivers/net/ethernet/freescale/fs_enet/fs_enet.h
131
int rx_ring, tx_ring;
drivers/net/ethernet/freescale/fs_enet/mac-fcc.c
145
(fpi->tx_ring + fpi->rx_ring) *
drivers/net/ethernet/freescale/fs_enet/mac-fcc.c
161
(fpi->tx_ring + fpi->rx_ring) * sizeof(cbd_t),
drivers/net/ethernet/freescale/fs_enet/mac-fcc.c
522
last_tx_bd = fep->tx_bd_base + (fpi->tx_ring - 1);
drivers/net/ethernet/freescale/fs_enet/mac-fec.c
130
(fpi->tx_ring + fpi->rx_ring) *
drivers/net/ethernet/freescale/fs_enet/mac-fec.c
145
dma_free_coherent(fep->dev, (fpi->tx_ring + fpi->rx_ring)
drivers/net/ethernet/freescale/fs_enet/mac-scc.c
132
fpi->dpram_offset = cpm_muram_alloc((fpi->tx_ring + fpi->rx_ring) *
drivers/net/ethernet/google/gve/gve.h
616
union gve_tx_desc_dqo *tx_ring;
drivers/net/ethernet/google/gve/gve_tx_dqo.c
249
if (tx->dqo.tx_ring) {
drivers/net/ethernet/google/gve/gve_tx_dqo.c
250
bytes = sizeof(tx->dqo.tx_ring[0]) * (tx->mask + 1);
drivers/net/ethernet/google/gve/gve_tx_dqo.c
251
dma_free_coherent(hdev, bytes, tx->dqo.tx_ring, tx->bus);
drivers/net/ethernet/google/gve/gve_tx_dqo.c
252
tx->dqo.tx_ring = NULL;
drivers/net/ethernet/google/gve/gve_tx_dqo.c
376
bytes = sizeof(tx->dqo.tx_ring[0]) * (tx->mask + 1);
drivers/net/ethernet/google/gve/gve_tx_dqo.c
377
tx->dqo.tx_ring = dma_alloc_coherent(hdev, bytes, &tx->bus, GFP_KERNEL);
drivers/net/ethernet/google/gve/gve_tx_dqo.c
378
if (!tx->dqo.tx_ring)
drivers/net/ethernet/google/gve/gve_tx_dqo.c
550
&tx->dqo.tx_ring[*desc_idx].pkt;
drivers/net/ethernet/google/gve/gve_tx_dqo.c
669
tx->dqo.tx_ring[last_desc_idx].pkt.report_event = true;
drivers/net/ethernet/google/gve/gve_tx_dqo.c
842
gve_tx_fill_tso_ctx_desc(&tx->dqo.tx_ring[desc_idx].tso_ctx,
drivers/net/ethernet/google/gve/gve_tx_dqo.c
847
gve_tx_fill_general_ctx_desc(&tx->dqo.tx_ring[desc_idx].general_ctx,
drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h
281
struct hbg_ring tx_ring;
drivers/net/ethernet/hisilicon/hibmcge/hbg_debugfs.c
47
hbg_dbg_ring(priv, &priv->tx_ring, s);
drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c
22
napi_schedule(&priv->tx_ring.napi);
drivers/net/ethernet/hisilicon/hibmcge/hbg_main.c
218
struct hbg_ring *ring = &priv->tx_ring;
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
14
(&(((struct hbg_priv *)netdev_priv(netdev))->tx_ring))
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
664
struct hbg_ring *tx_ring = &priv->tx_ring;
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
666
if (!tx_ring->tout_log_buf)
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
667
tx_ring->tout_log_buf = devm_kmalloc(&priv->pdev->dev,
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
671
if (!tx_ring->tout_log_buf)
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
674
return hbg_ring_init(priv, tx_ring, hbg_napi_tx_recycle, HBG_DIR_TX);
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
707
hbg_ring_uninit(&priv->tx_ring);
drivers/net/ethernet/hisilicon/hibmcge/hbg_txrx.c
715
hbg_ring_uninit(&priv->tx_ring);
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
1034
priv->tx_ring.desc = desc;
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
1035
priv->tx_ring.phys_addr = phys_addr;
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
1042
if (priv->tx_ring.desc) {
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
1045
priv->tx_ring.desc, priv->tx_ring.phys_addr);
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
1046
priv->tx_ring.desc = NULL;
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
247
struct hix5hd2_sg_desc_ring tx_ring;
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
575
desc = priv->tx_ring.desc + pos;
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
711
desc = priv->tx_ring.desc + pos;
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
766
addr = priv->tx_ring.phys_addr + pos * sizeof(struct sg_desc);
drivers/net/ethernet/hisilicon/hns/hnae.c
246
ret = hnae_init_ring(q, &q->tx_ring, q->tx_ring.flags | RINGF_DIR);
drivers/net/ethernet/hisilicon/hns/hnae.c
260
hnae_fini_ring(&q->tx_ring);
drivers/net/ethernet/hisilicon/hns/hnae.c
270
hnae_fini_ring(&q->tx_ring);
drivers/net/ethernet/hisilicon/hns/hnae.h
357
struct hnae_ring tx_ring ____cacheline_internodealigned_in_smp;
drivers/net/ethernet/hisilicon/hns/hnae.h
580
(q)->tx_ring.io_base + RCB_REG_TAIL)
drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
113
ae_handle->qs[i]->tx_ring.q = ae_handle->qs[i];
drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
642
tx_bytes += queue->tx_ring.stats.tx_bytes;
drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
643
tx_packets += queue->tx_ring.stats.tx_pkts;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
242
(ring_type == RX_RING) ? &q->rx_ring : &q->tx_ring;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
448
ring = &q->tx_ring;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
66
tail = dsaf_read_dev(&qs->tx_ring, RCB_REG_TAIL);
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
69
head = dsaf_read_dev(&qs->tx_ring, RCB_REG_HEAD);
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
855
regs_buff[4] = queue->tx_ring.stats.tx_pkts;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
856
regs_buff[5] = queue->tx_ring.stats.tx_bytes;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
857
regs_buff[6] = queue->tx_ring.stats.tx_err_cnt;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
858
regs_buff[7] = queue->tx_ring.stats.io_err_cnt;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
859
regs_buff[8] = queue->tx_ring.stats.sw_err_cnt;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
860
regs_buff[9] = queue->tx_ring.stats.seg_pkt_cnt;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
861
regs_buff[10] = queue->tx_ring.stats.restart_queue;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
862
regs_buff[11] = queue->tx_ring.stats.tx_busy;
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1907
tx_bytes += h->qs[idx]->tx_ring.stats.tx_bytes;
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1908
tx_pkts += h->qs[idx]->tx_ring.stats.tx_pkts;
drivers/net/ethernet/hisilicon/hns/hns_enet.c
2008
i, h->qs[i]->tx_ring.next_to_clean);
drivers/net/ethernet/hisilicon/hns/hns_enet.c
2010
i, h->qs[i]->tx_ring.next_to_use);
drivers/net/ethernet/hisilicon/hns/hns_enet.c
2123
rd->ring = &h->qs[i]->tx_ring;
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
685
param->tx_pending = queue->tx_ring.desc_num;
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
1503
static int hns3_handle_vtags(struct hns3_enet_ring *tx_ring,
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
1506
struct hnae3_handle *handle = tx_ring->tqp->handle;
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2844
struct hns3_enet_ring *tx_ring,
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2847
struct napi_struct *napi = &tx_ring->tqp_vector->napi;
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2852
priv->tx_timeout_count, timeout_queue, tx_ring->next_to_use,
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2853
tx_ring->next_to_clean, napi->state);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2857
tx_ring->stats.tx_pkts, tx_ring->stats.tx_bytes,
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2858
tx_ring->stats.sw_err_cnt, tx_ring->pending_buf);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2862
tx_ring->stats.seg_pkt_cnt, tx_ring->stats.tx_more,
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2863
tx_ring->stats.restart_queue, tx_ring->stats.tx_busy);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2866
tx_ring->stats.tx_push, tx_ring->stats.tx_mem_doorbell);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2870
struct hns3_enet_ring *tx_ring)
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2874
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_BD_NUM_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2875
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_HEAD_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2876
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_TAIL_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2877
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_BD_ERR_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2878
readl(tx_ring->tqp_vector->mask_addr));
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2881
hns3_tqp_read_reg(tx_ring, HNS3_RING_EN_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2882
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_TC_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2883
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_FBDNUM_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2884
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_OFFSET_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2885
hns3_tqp_read_reg(tx_ring, HNS3_RING_TX_RING_EBDNUM_REG),
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2886
hns3_tqp_read_reg(tx_ring,
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2894
struct hns3_enet_ring *tx_ring;
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2907
tx_ring = &priv->ring[timeout_queue];
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2908
hns3_dump_queue_stats(ndev, tx_ring, timeout_queue);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2921
hns3_dump_queue_reg(ndev, tx_ring);
drivers/net/ethernet/intel/e1000/e1000.h
228
struct e1000_tx_ring *tx_ring; /* One per active queue */
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
555
struct e1000_tx_ring *txdr = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
587
tx_old = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
599
adapter->tx_ring = txdr;
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
631
adapter->tx_ring = tx_old;
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
635
adapter->tx_ring = txdr;
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
648
adapter->tx_ring = tx_old;
drivers/net/ethernet/intel/e1000/e1000_main.c
111
struct e1000_tx_ring *tx_ring);
drivers/net/ethernet/intel/e1000/e1000_main.c
1225
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/e1000/e1000_main.c
1270
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/e1000/e1000_main.c
1325
adapter->tx_ring = kzalloc_objs(struct e1000_tx_ring,
drivers/net/ethernet/intel/e1000/e1000_main.c
1327
if (!adapter->tx_ring)
drivers/net/ethernet/intel/e1000/e1000_main.c
1333
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/e1000/e1000_main.c
1575
err = e1000_setup_tx_resources(adapter, &adapter->tx_ring[i]);
drivers/net/ethernet/intel/e1000/e1000_main.c
1580
&adapter->tx_ring[i]);
drivers/net/ethernet/intel/e1000/e1000_main.c
1606
tdba = adapter->tx_ring[0].dma;
drivers/net/ethernet/intel/e1000/e1000_main.c
1607
tdlen = adapter->tx_ring[0].count *
drivers/net/ethernet/intel/e1000/e1000_main.c
1614
adapter->tx_ring[0].tdh = ((hw->mac_type >= e1000_82543) ?
drivers/net/ethernet/intel/e1000/e1000_main.c
1616
adapter->tx_ring[0].tdt = ((hw->mac_type >= e1000_82543) ?
drivers/net/ethernet/intel/e1000/e1000_main.c
1926
struct e1000_tx_ring *tx_ring)
drivers/net/ethernet/intel/e1000/e1000_main.c
1930
e1000_clean_tx_ring(adapter, tx_ring);
drivers/net/ethernet/intel/e1000/e1000_main.c
1932
vfree(tx_ring->buffer_info);
drivers/net/ethernet/intel/e1000/e1000_main.c
1933
tx_ring->buffer_info = NULL;
drivers/net/ethernet/intel/e1000/e1000_main.c
1935
dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc,
drivers/net/ethernet/intel/e1000/e1000_main.c
1936
tx_ring->dma);
drivers/net/ethernet/intel/e1000/e1000_main.c
1938
tx_ring->desc = NULL;
drivers/net/ethernet/intel/e1000/e1000_main.c
1952
e1000_free_tx_resources(adapter, &adapter->tx_ring[i]);
drivers/net/ethernet/intel/e1000/e1000_main.c
1984
struct e1000_tx_ring *tx_ring)
drivers/net/ethernet/intel/e1000/e1000_main.c
1993
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/intel/e1000/e1000_main.c
1994
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
1999
size = sizeof(struct e1000_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/e1000/e1000_main.c
2000
memset(tx_ring->buffer_info, 0, size);
drivers/net/ethernet/intel/e1000/e1000_main.c
2004
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/e1000/e1000_main.c
2006
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/e1000/e1000_main.c
2007
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/e1000/e1000_main.c
2008
tx_ring->last_tx_tso = false;
drivers/net/ethernet/intel/e1000/e1000_main.c
2010
writel(0, hw->hw_addr + tx_ring->tdh);
drivers/net/ethernet/intel/e1000/e1000_main.c
2011
writel(0, hw->hw_addr + tx_ring->tdt);
drivers/net/ethernet/intel/e1000/e1000_main.c
2023
e1000_clean_tx_ring(adapter, &adapter->tx_ring[i]);
drivers/net/ethernet/intel/e1000/e1000_main.c
2434
struct e1000_tx_ring *txdr = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_main.c
2695
struct e1000_tx_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/e1000/e1000_main.c
2737
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000/e1000_main.c
2738
context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000/e1000_main.c
2739
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
2754
if (++i == tx_ring->count)
drivers/net/ethernet/intel/e1000/e1000_main.c
2757
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/e1000/e1000_main.c
2765
struct e1000_tx_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/e1000/e1000_main.c
2796
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000/e1000_main.c
2797
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
2798
context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000/e1000_main.c
2811
if (unlikely(++i == tx_ring->count))
drivers/net/ethernet/intel/e1000/e1000_main.c
2814
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/e1000/e1000_main.c
2823
struct e1000_tx_ring *tx_ring,
drivers/net/ethernet/intel/e1000/e1000_main.c
2835
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000/e1000_main.c
2838
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
2845
if (!skb->data_len && tx_ring->last_tx_tso &&
drivers/net/ethernet/intel/e1000/e1000_main.c
2847
tx_ring->last_tx_tso = false;
drivers/net/ethernet/intel/e1000/e1000_main.c
2889
if (unlikely(i == tx_ring->count))
drivers/net/ethernet/intel/e1000/e1000_main.c
2903
if (unlikely(i == tx_ring->count))
drivers/net/ethernet/intel/e1000/e1000_main.c
2906
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
2945
tx_ring->buffer_info[i].skb = skb;
drivers/net/ethernet/intel/e1000/e1000_main.c
2946
tx_ring->buffer_info[i].segs = segs;
drivers/net/ethernet/intel/e1000/e1000_main.c
2947
tx_ring->buffer_info[i].bytecount = bytecount;
drivers/net/ethernet/intel/e1000/e1000_main.c
2948
tx_ring->buffer_info[first].next_to_watch = i;
drivers/net/ethernet/intel/e1000/e1000_main.c
2958
i += tx_ring->count;
drivers/net/ethernet/intel/e1000/e1000_main.c
2960
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
2968
struct e1000_tx_ring *tx_ring, int tx_flags,
drivers/net/ethernet/intel/e1000/e1000_main.c
2998
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000/e1000_main.c
3001
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
3002
tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000/e1000_main.c
3007
if (unlikely(++i == tx_ring->count))
drivers/net/ethernet/intel/e1000/e1000_main.c
3024
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/e1000/e1000_main.c
3067
struct e1000_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_main.c
3079
if (likely(E1000_DESC_UNUSED(tx_ring) < size))
drivers/net/ethernet/intel/e1000/e1000_main.c
3089
struct e1000_tx_ring *tx_ring, int size)
drivers/net/ethernet/intel/e1000/e1000_main.c
3091
if (likely(E1000_DESC_UNUSED(tx_ring) >= size))
drivers/net/ethernet/intel/e1000/e1000_main.c
3102
struct e1000_tx_ring *tx_ring;
drivers/net/ethernet/intel/e1000/e1000_main.c
3119
tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_main.c
3180
if (!skb->data_len && tx_ring->last_tx_tso && !skb_is_gso(skb))
drivers/net/ethernet/intel/e1000/e1000_main.c
3205
if (unlikely(e1000_maybe_stop_tx(netdev, tx_ring, count + 2)))
drivers/net/ethernet/intel/e1000/e1000_main.c
3222
first = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000/e1000_main.c
3224
tso = e1000_tso(adapter, tx_ring, skb, protocol);
drivers/net/ethernet/intel/e1000/e1000_main.c
3232
tx_ring->last_tx_tso = true;
drivers/net/ethernet/intel/e1000/e1000_main.c
3234
} else if (likely(e1000_tx_csum(adapter, tx_ring, skb, protocol)))
drivers/net/ethernet/intel/e1000/e1000_main.c
3243
count = e1000_tx_map(adapter, tx_ring, skb, first, max_per_txd,
drivers/net/ethernet/intel/e1000/e1000_main.c
3259
e1000_tx_queue(adapter, tx_ring, tx_flags, count);
drivers/net/ethernet/intel/e1000/e1000_main.c
3269
e1000_maybe_stop_tx(netdev, tx_ring, desc_needed);
drivers/net/ethernet/intel/e1000/e1000_main.c
3273
writel(tx_ring->next_to_use, hw->hw_addr + tx_ring->tdt);
drivers/net/ethernet/intel/e1000/e1000_main.c
3277
tx_ring->buffer_info[first].time_stamp = 0;
drivers/net/ethernet/intel/e1000/e1000_main.c
3278
tx_ring->next_to_use = first;
drivers/net/ethernet/intel/e1000/e1000_main.c
3357
struct e1000_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_main.c
3403
for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
drivers/net/ethernet/intel/e1000/e1000_main.c
3404
struct e1000_tx_desc *tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000/e1000_main.c
3405
struct e1000_tx_buffer *buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
3410
if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/e1000/e1000_main.c
3412
else if (i == tx_ring->next_to_use)
drivers/net/ethernet/intel/e1000/e1000_main.c
3414
else if (i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/e1000/e1000_main.c
3802
tx_clean_complete = e1000_clean_tx_irq(adapter, &adapter->tx_ring[0]);
drivers/net/ethernet/intel/e1000/e1000_main.c
3828
struct e1000_tx_ring *tx_ring)
drivers/net/ethernet/intel/e1000/e1000_main.c
3839
i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/e1000/e1000_main.c
3840
eop = tx_ring->buffer_info[i].next_to_watch;
drivers/net/ethernet/intel/e1000/e1000_main.c
3841
eop_desc = E1000_TX_DESC(*tx_ring, eop);
drivers/net/ethernet/intel/e1000/e1000_main.c
3844
(count < tx_ring->count)) {
drivers/net/ethernet/intel/e1000/e1000_main.c
3848
tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000/e1000_main.c
3849
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000/e1000_main.c
3865
if (unlikely(++i == tx_ring->count))
drivers/net/ethernet/intel/e1000/e1000_main.c
3869
eop = tx_ring->buffer_info[i].next_to_watch;
drivers/net/ethernet/intel/e1000/e1000_main.c
3870
eop_desc = E1000_TX_DESC(*tx_ring, eop);
drivers/net/ethernet/intel/e1000/e1000_main.c
3876
smp_store_release(&tx_ring->next_to_clean, i);
drivers/net/ethernet/intel/e1000/e1000_main.c
3882
E1000_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD)) {
drivers/net/ethernet/intel/e1000/e1000_main.c
3900
if (tx_ring->buffer_info[eop].time_stamp &&
drivers/net/ethernet/intel/e1000/e1000_main.c
3901
time_after(jiffies, tx_ring->buffer_info[eop].time_stamp +
drivers/net/ethernet/intel/e1000/e1000_main.c
3917
(unsigned long)(tx_ring - adapter->tx_ring),
drivers/net/ethernet/intel/e1000/e1000_main.c
3918
readl(hw->hw_addr + tx_ring->tdh),
drivers/net/ethernet/intel/e1000/e1000_main.c
3919
readl(hw->hw_addr + tx_ring->tdt),
drivers/net/ethernet/intel/e1000/e1000_main.c
3920
tx_ring->next_to_use,
drivers/net/ethernet/intel/e1000/e1000_main.c
3921
tx_ring->next_to_clean,
drivers/net/ethernet/intel/e1000/e1000_main.c
3922
tx_ring->buffer_info[eop].time_stamp,
drivers/net/ethernet/intel/e1000/e1000_main.c
3934
return count < tx_ring->count;
drivers/net/ethernet/intel/e1000/e1000_main.c
79
struct e1000_tx_ring *tx_ring);
drivers/net/ethernet/intel/e1000/e1000_main.c
98
struct e1000_tx_ring *tx_ring);
drivers/net/ethernet/intel/e1000/e1000_param.c
254
struct e1000_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000/e1000_param.c
271
tx_ring->count = TxDescriptors[bd];
drivers/net/ethernet/intel/e1000/e1000_param.c
272
e1000_validate_option(&tx_ring->count, &opt, adapter);
drivers/net/ethernet/intel/e1000/e1000_param.c
273
tx_ring->count = ALIGN(tx_ring->count,
drivers/net/ethernet/intel/e1000/e1000_param.c
276
tx_ring->count = opt.def;
drivers/net/ethernet/intel/e1000/e1000_param.c
279
tx_ring[i].count = tx_ring->count;
drivers/net/ethernet/intel/e1000e/e1000.h
220
struct e1000_ring *tx_ring ____cacheline_aligned_in_smp;
drivers/net/ethernet/intel/e1000e/ethtool.c
1113
struct e1000_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/e1000e/ethtool.c
1119
if (tx_ring->desc && tx_ring->buffer_info) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1120
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1121
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/ethtool.c
1144
if (tx_ring->desc) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1145
dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc,
drivers/net/ethernet/intel/e1000e/ethtool.c
1146
tx_ring->dma);
drivers/net/ethernet/intel/e1000e/ethtool.c
1147
tx_ring->desc = NULL;
drivers/net/ethernet/intel/e1000e/ethtool.c
1155
kfree(tx_ring->buffer_info);
drivers/net/ethernet/intel/e1000e/ethtool.c
1156
tx_ring->buffer_info = NULL;
drivers/net/ethernet/intel/e1000e/ethtool.c
1163
struct e1000_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/e1000e/ethtool.c
1173
if (!tx_ring->count)
drivers/net/ethernet/intel/e1000e/ethtool.c
1174
tx_ring->count = E1000_DEFAULT_TXD;
drivers/net/ethernet/intel/e1000e/ethtool.c
1176
tx_ring->buffer_info = kzalloc_objs(struct e1000_buffer, tx_ring->count);
drivers/net/ethernet/intel/e1000e/ethtool.c
1177
if (!tx_ring->buffer_info) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1182
tx_ring->size = tx_ring->count * sizeof(struct e1000_tx_desc);
drivers/net/ethernet/intel/e1000e/ethtool.c
1183
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/e1000e/ethtool.c
1184
tx_ring->desc = dma_alloc_coherent(&pdev->dev, tx_ring->size,
drivers/net/ethernet/intel/e1000e/ethtool.c
1185
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/e1000e/ethtool.c
1186
if (!tx_ring->desc) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1190
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/e1000e/ethtool.c
1191
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/e1000e/ethtool.c
1193
ew32(TDBAL(0), ((u64)tx_ring->dma & 0x00000000FFFFFFFF));
drivers/net/ethernet/intel/e1000e/ethtool.c
1194
ew32(TDBAH(0), ((u64)tx_ring->dma >> 32));
drivers/net/ethernet/intel/e1000e/ethtool.c
1195
ew32(TDLEN(0), tx_ring->count * sizeof(struct e1000_tx_desc));
drivers/net/ethernet/intel/e1000e/ethtool.c
1202
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1203
struct e1000_tx_desc *tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000e/ethtool.c
1213
tx_ring->buffer_info[i].skb = skb;
drivers/net/ethernet/intel/e1000e/ethtool.c
1214
tx_ring->buffer_info[i].length = skb->len;
drivers/net/ethernet/intel/e1000e/ethtool.c
1215
tx_ring->buffer_info[i].dma =
drivers/net/ethernet/intel/e1000e/ethtool.c
1219
tx_ring->buffer_info[i].dma)) {
drivers/net/ethernet/intel/e1000e/ethtool.c
1223
tx_desc->buffer_addr = cpu_to_le64(tx_ring->buffer_info[i].dma);
drivers/net/ethernet/intel/e1000e/ethtool.c
1630
struct e1000_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/e1000e/ethtool.c
1648
if (rx_ring->count <= tx_ring->count)
drivers/net/ethernet/intel/e1000e/ethtool.c
1649
lc = ((tx_ring->count / 64) * 2) + 1;
drivers/net/ethernet/intel/e1000e/ethtool.c
1659
buffer_info = &tx_ring->buffer_info[k];
drivers/net/ethernet/intel/e1000e/ethtool.c
1667
if (k == tx_ring->count)
drivers/net/ethernet/intel/e1000e/ethtool.c
691
adapter->tx_ring->count = new_tx_count;
drivers/net/ethernet/intel/e1000e/ethtool.c
724
memcpy(temp_tx, adapter->tx_ring, size);
drivers/net/ethernet/intel/e1000e/ethtool.c
740
e1000e_free_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/ethtool.c
741
memcpy(adapter->tx_ring, temp_tx, size);
drivers/net/ethernet/intel/e1000e/netdev.c
1063
static void e1000_put_txbuf(struct e1000_ring *tx_ring,
drivers/net/ethernet/intel/e1000e/netdev.c
1067
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
1094
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
1095
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/e1000e/netdev.c
1096
unsigned int eop = tx_ring->buffer_info[i].next_to_watch;
drivers/net/ethernet/intel/e1000e/netdev.c
1097
struct e1000_tx_desc *eop_desc = E1000_TX_DESC(*tx_ring, eop);
drivers/net/ethernet/intel/e1000e/netdev.c
1153
readl(tx_ring->head), readl(tx_ring->tail), tx_ring->next_to_use,
drivers/net/ethernet/intel/e1000e/netdev.c
1154
tx_ring->next_to_clean, tx_ring->buffer_info[eop].time_stamp,
drivers/net/ethernet/intel/e1000e/netdev.c
1216
static bool e1000_clean_tx_irq(struct e1000_ring *tx_ring)
drivers/net/ethernet/intel/e1000e/netdev.c
1218
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
1228
i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/e1000e/netdev.c
1229
eop = tx_ring->buffer_info[i].next_to_watch;
drivers/net/ethernet/intel/e1000e/netdev.c
1230
eop_desc = E1000_TX_DESC(*tx_ring, eop);
drivers/net/ethernet/intel/e1000e/netdev.c
1233
(count < tx_ring->count)) {
drivers/net/ethernet/intel/e1000e/netdev.c
1238
tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000e/netdev.c
1239
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
1251
e1000_put_txbuf(tx_ring, buffer_info, false);
drivers/net/ethernet/intel/e1000e/netdev.c
1255
if (i == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
1259
if (i == tx_ring->next_to_use)
drivers/net/ethernet/intel/e1000e/netdev.c
1261
eop = tx_ring->buffer_info[i].next_to_watch;
drivers/net/ethernet/intel/e1000e/netdev.c
1262
eop_desc = E1000_TX_DESC(*tx_ring, eop);
drivers/net/ethernet/intel/e1000e/netdev.c
1265
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/e1000e/netdev.c
1271
e1000_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD) {
drivers/net/ethernet/intel/e1000e/netdev.c
1289
if (tx_ring->buffer_info[i].time_stamp &&
drivers/net/ethernet/intel/e1000e/netdev.c
1290
time_after(jiffies, tx_ring->buffer_info[i].time_stamp
drivers/net/ethernet/intel/e1000e/netdev.c
1299
return count < tx_ring->count;
drivers/net/ethernet/intel/e1000e/netdev.c
1919
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
1924
if (!e1000_clean_tx_irq(tx_ring))
drivers/net/ethernet/intel/e1000e/netdev.c
1926
ew32(ICS, tx_ring->ims_val);
drivers/net/ethernet/intel/e1000e/netdev.c
1929
ew32(IMS, adapter->tx_ring->ims_val);
drivers/net/ethernet/intel/e1000e/netdev.c
1970
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
1995
tx_ring->ims_val = E1000_IMS_TXQ0;
drivers/net/ethernet/intel/e1000e/netdev.c
1997
if (tx_ring->itr_val)
drivers/net/ethernet/intel/e1000e/netdev.c
1998
writel(1000000000 / (tx_ring->itr_val * 256),
drivers/net/ethernet/intel/e1000e/netdev.c
1999
tx_ring->itr_register);
drivers/net/ethernet/intel/e1000e/netdev.c
2001
writel(1, tx_ring->itr_register);
drivers/net/ethernet/intel/e1000e/netdev.c
2002
adapter->eiac_mask |= tx_ring->ims_val;
drivers/net/ethernet/intel/e1000e/netdev.c
201
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
2121
snprintf(adapter->tx_ring->name,
drivers/net/ethernet/intel/e1000e/netdev.c
2122
sizeof(adapter->tx_ring->name) - 1,
drivers/net/ethernet/intel/e1000e/netdev.c
2125
memcpy(adapter->tx_ring->name, netdev->name, IFNAMSIZ);
drivers/net/ethernet/intel/e1000e/netdev.c
2127
e1000_intr_msix_tx, 0, adapter->tx_ring->name,
drivers/net/ethernet/intel/e1000e/netdev.c
2131
adapter->tx_ring->itr_register = adapter->hw.hw_addr +
drivers/net/ethernet/intel/e1000e/netdev.c
2133
adapter->tx_ring->itr_val = adapter->itr;
drivers/net/ethernet/intel/e1000e/netdev.c
2325
int e1000e_setup_tx_resources(struct e1000_ring *tx_ring)
drivers/net/ethernet/intel/e1000e/netdev.c
2327
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
2330
size = sizeof(struct e1000_buffer) * tx_ring->count;
drivers/net/ethernet/intel/e1000e/netdev.c
2331
tx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/e1000e/netdev.c
2332
if (!tx_ring->buffer_info)
drivers/net/ethernet/intel/e1000e/netdev.c
2336
tx_ring->size = tx_ring->count * sizeof(struct e1000_tx_desc);
drivers/net/ethernet/intel/e1000e/netdev.c
2337
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/e1000e/netdev.c
2339
err = e1000_alloc_ring_dma(adapter, tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
2343
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/e1000e/netdev.c
2344
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/e1000e/netdev.c
2348
vfree(tx_ring->buffer_info);
drivers/net/ethernet/intel/e1000e/netdev.c
2409
static void e1000_clean_tx_ring(struct e1000_ring *tx_ring)
drivers/net/ethernet/intel/e1000e/netdev.c
2411
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
2416
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/intel/e1000e/netdev.c
2417
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
2418
e1000_put_txbuf(tx_ring, buffer_info, false);
drivers/net/ethernet/intel/e1000e/netdev.c
2422
size = sizeof(struct e1000_buffer) * tx_ring->count;
drivers/net/ethernet/intel/e1000e/netdev.c
2423
memset(tx_ring->buffer_info, 0, size);
drivers/net/ethernet/intel/e1000e/netdev.c
2425
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/e1000e/netdev.c
2427
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/e1000e/netdev.c
2428
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/e1000e/netdev.c
2437
void e1000e_free_tx_resources(struct e1000_ring *tx_ring)
drivers/net/ethernet/intel/e1000e/netdev.c
2439
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
2442
e1000_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
2444
vfree(tx_ring->buffer_info);
drivers/net/ethernet/intel/e1000e/netdev.c
2445
tx_ring->buffer_info = NULL;
drivers/net/ethernet/intel/e1000e/netdev.c
2447
dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc,
drivers/net/ethernet/intel/e1000e/netdev.c
2448
tx_ring->dma);
drivers/net/ethernet/intel/e1000e/netdev.c
2449
tx_ring->desc = NULL;
drivers/net/ethernet/intel/e1000e/netdev.c
245
buffer_info = &tx_ring->buffer_info[tx_ring->next_to_clean];
drivers/net/ethernet/intel/e1000e/netdev.c
247
0, tx_ring->next_to_use, tx_ring->next_to_clean,
drivers/net/ethernet/intel/e1000e/netdev.c
2631
adapter->tx_ring = kzalloc(size, GFP_KERNEL);
drivers/net/ethernet/intel/e1000e/netdev.c
2632
if (!adapter->tx_ring)
drivers/net/ethernet/intel/e1000e/netdev.c
2634
adapter->tx_ring->count = adapter->tx_ring_count;
drivers/net/ethernet/intel/e1000e/netdev.c
2635
adapter->tx_ring->adapter = adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
2647
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
2667
(adapter->rx_ring->ims_val & adapter->tx_ring->ims_val))
drivers/net/ethernet/intel/e1000e/netdev.c
2668
tx_cleaned = e1000_clean_tx_irq(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
289
for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
drivers/net/ethernet/intel/e1000e/netdev.c
291
tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000e/netdev.c
2914
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
2919
tdba = tx_ring->dma;
drivers/net/ethernet/intel/e1000e/netdev.c
292
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
2920
tdlen = tx_ring->count * sizeof(struct e1000_tx_desc);
drivers/net/ethernet/intel/e1000e/netdev.c
2926
tx_ring->head = adapter->hw.hw_addr + E1000_TDH(0);
drivers/net/ethernet/intel/e1000e/netdev.c
2927
tx_ring->tail = adapter->hw.hw_addr + E1000_TDT(0);
drivers/net/ethernet/intel/e1000e/netdev.c
2930
e1000e_update_tdt_wa(tx_ring, 0);
drivers/net/ethernet/intel/e1000e/netdev.c
294
if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/e1000e/netdev.c
296
else if (i == tx_ring->next_to_use)
drivers/net/ethernet/intel/e1000e/netdev.c
298
else if (i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/e1000e/netdev.c
3813
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
3821
BUG_ON(tdt != tx_ring->next_to_use);
drivers/net/ethernet/intel/e1000e/netdev.c
3822
tx_desc = E1000_TX_DESC(*tx_ring, tx_ring->next_to_use);
drivers/net/ethernet/intel/e1000e/netdev.c
3823
tx_desc->buffer_addr = cpu_to_le64(tx_ring->dma);
drivers/net/ethernet/intel/e1000e/netdev.c
3829
tx_ring->next_to_use++;
drivers/net/ethernet/intel/e1000e/netdev.c
3830
if (tx_ring->next_to_use == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
3831
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/e1000e/netdev.c
3832
ew32(TDT(0), tx_ring->next_to_use);
drivers/net/ethernet/intel/e1000e/netdev.c
4334
e1000_clean_tx_ring(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
4642
err = e1000e_setup_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
4721
e1000e_free_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
4765
e1000e_free_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
5216
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
5380
(e1000_desc_unused(tx_ring) + 1 < tx_ring->count))
drivers/net/ethernet/intel/e1000e/netdev.c
5454
static int e1000_tso(struct e1000_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/e1000e/netdev.c
5494
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000e/netdev.c
5495
context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000e/netdev.c
5496
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
5512
if (i == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
5514
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/e1000e/netdev.c
5519
static bool e1000_tx_csum(struct e1000_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/e1000e/netdev.c
5522
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
5551
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000e/netdev.c
5552
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
5553
context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000e/netdev.c
5566
if (i == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
5568
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/e1000e/netdev.c
5573
static int e1000_tx_map(struct e1000_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/e1000e/netdev.c
5577
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
5584
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000e/netdev.c
5587
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
5606
if (i == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
5619
if (i == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
5622
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
5645
tx_ring->buffer_info[i].skb = skb;
drivers/net/ethernet/intel/e1000e/netdev.c
5646
tx_ring->buffer_info[i].segs = segs;
drivers/net/ethernet/intel/e1000e/netdev.c
5647
tx_ring->buffer_info[i].bytecount = bytecount;
drivers/net/ethernet/intel/e1000e/netdev.c
5648
tx_ring->buffer_info[first].next_to_watch = i;
drivers/net/ethernet/intel/e1000e/netdev.c
5658
i += tx_ring->count;
drivers/net/ethernet/intel/e1000e/netdev.c
5660
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
5661
e1000_put_txbuf(tx_ring, buffer_info, true);
drivers/net/ethernet/intel/e1000e/netdev.c
5667
static void e1000_tx_queue(struct e1000_ring *tx_ring, int tx_flags, int count)
drivers/net/ethernet/intel/e1000e/netdev.c
5669
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
5702
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000e/netdev.c
5705
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/e1000e/netdev.c
5706
tx_desc = E1000_TX_DESC(*tx_ring, i);
drivers/net/ethernet/intel/e1000e/netdev.c
5713
if (i == tx_ring->count)
drivers/net/ethernet/intel/e1000e/netdev.c
5730
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/e1000e/netdev.c
5771
static int __e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size)
drivers/net/ethernet/intel/e1000e/netdev.c
5773
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
5785
if (e1000_desc_unused(tx_ring) < size)
drivers/net/ethernet/intel/e1000e/netdev.c
5794
static int e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size)
drivers/net/ethernet/intel/e1000e/netdev.c
5796
BUG_ON(size > tx_ring->count);
drivers/net/ethernet/intel/e1000e/netdev.c
5798
if (e1000_desc_unused(tx_ring) >= size)
drivers/net/ethernet/intel/e1000e/netdev.c
5800
return __e1000_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/e1000e/netdev.c
5807
struct e1000_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/e1000e/netdev.c
5877
if (e1000_maybe_stop_tx(tx_ring, count + 2))
drivers/net/ethernet/intel/e1000e/netdev.c
5886
first = tx_ring->next_to_use;
drivers/net/ethernet/intel/e1000e/netdev.c
5888
tso = e1000_tso(tx_ring, skb, protocol);
drivers/net/ethernet/intel/e1000e/netdev.c
5896
else if (e1000_tx_csum(tx_ring, skb, protocol))
drivers/net/ethernet/intel/e1000e/netdev.c
5910
count = e1000_tx_map(tx_ring, skb, first, adapter->tx_fifo_limit,
drivers/net/ethernet/intel/e1000e/netdev.c
5929
e1000_tx_queue(tx_ring, tx_flags, count);
drivers/net/ethernet/intel/e1000e/netdev.c
5931
e1000_maybe_stop_tx(tx_ring,
drivers/net/ethernet/intel/e1000e/netdev.c
5939
e1000e_update_tdt_wa(tx_ring,
drivers/net/ethernet/intel/e1000e/netdev.c
5940
tx_ring->next_to_use);
drivers/net/ethernet/intel/e1000e/netdev.c
5942
writel(tx_ring->next_to_use, tx_ring->tail);
drivers/net/ethernet/intel/e1000e/netdev.c
5946
tx_ring->buffer_info[first].time_stamp = 0;
drivers/net/ethernet/intel/e1000e/netdev.c
5947
tx_ring->next_to_use = first;
drivers/net/ethernet/intel/e1000e/netdev.c
624
static void e1000e_update_tdt_wa(struct e1000_ring *tx_ring, unsigned int i)
drivers/net/ethernet/intel/e1000e/netdev.c
626
struct e1000_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/e1000e/netdev.c
630
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/e1000e/netdev.c
632
if (unlikely(i != readl(tx_ring->tail))) {
drivers/net/ethernet/intel/e1000e/netdev.c
7713
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/e1000e/netdev.c
7779
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/fm10k/fm10k.h
306
struct fm10k_ring *tx_ring[MAX_QUEUES] ____cacheline_aligned_in_smp;
drivers/net/ethernet/intel/fm10k/fm10k.h
478
struct fm10k_ring *tx_ring);
drivers/net/ethernet/intel/fm10k/fm10k.h
481
bool fm10k_check_tx_hang(struct fm10k_ring *tx_ring);
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
286
ring = interface->tx_ring[i];
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
553
interface->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
579
memcpy(&temp_ring[i], interface->tx_ring[i],
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
594
fm10k_free_tx_resources(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
596
memcpy(interface->tx_ring[i], &temp_ring[i],
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1002
if (fm10k_tx_desc_push(tx_ring, tx_desc, i++, dma, size, flags))
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1006
netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1023
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1026
fm10k_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1029
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more()) {
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1030
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1035
dev_err(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1039
tx_buffer = &tx_ring->tx_buffer[i];
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1040
fm10k_unmap_and_free_tx_resource(tx_ring, tx_buffer);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1044
i = tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1048
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1052
struct fm10k_ring *tx_ring)
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1071
if (fm10k_maybe_stop_tx(tx_ring, count + 3)) {
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1072
tx_ring->tx_stats.tx_busy++;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1077
first = &tx_ring->tx_buffer[tx_ring->next_to_use];
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1085
tso = fm10k_tso(tx_ring, first);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1089
fm10k_tx_csum(tx_ring, first);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1091
fm10k_tx_map(tx_ring, first);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1129
bool fm10k_check_tx_hang(struct fm10k_ring *tx_ring)
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1131
u32 tx_done = fm10k_get_tx_completed(tx_ring);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1132
u32 tx_done_old = tx_ring->tx_stats.tx_done_old;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1133
u32 tx_pending = fm10k_get_tx_pending(tx_ring, true);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1135
clear_check_for_tx_hang(tx_ring);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1147
tx_ring->tx_stats.tx_done_old = tx_done;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1149
clear_bit(__FM10K_HANG_CHECK_ARMED, tx_ring->state);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1155
return test_and_set_bit(__FM10K_HANG_CHECK_ARMED, tx_ring->state);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1179
struct fm10k_ring *tx_ring, int napi_budget)
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1186
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1191
tx_buffer = &tx_ring->tx_buffer[i];
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1192
tx_desc = FM10K_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1193
i -= tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1220
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1235
i -= tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1236
tx_buffer = tx_ring->tx_buffer;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1237
tx_desc = FM10K_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1242
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1255
i -= tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1256
tx_buffer = tx_ring->tx_buffer;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1257
tx_desc = FM10K_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1267
i += tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1268
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1269
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1270
tx_ring->stats.bytes += total_bytes;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1271
tx_ring->stats.packets += total_packets;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1272
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1276
if (check_for_tx_hang(tx_ring) && fm10k_check_tx_hang(tx_ring)) {
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1280
netif_err(interface, drv, tx_ring->netdev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1286
tx_ring->queue_index,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1287
fm10k_read_reg(hw, FM10K_TDH(tx_ring->reg_idx)),
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1288
fm10k_read_reg(hw, FM10K_TDT(tx_ring->reg_idx)),
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1289
tx_ring->next_to_use, i);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1291
netif_stop_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1292
tx_ring->queue_index);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1294
netif_info(interface, probe, tx_ring->netdev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1297
tx_ring->queue_index);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1306
netdev_tx_completed_queue(txring_txq(tx_ring),
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1310
if (unlikely(total_packets && netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1311
(fm10k_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD))) {
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1316
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1317
tx_ring->queue_index) &&
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1319
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1320
tx_ring->queue_index);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1321
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1635
interface->tx_ring[txr_idx] = ring;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1697
interface->tx_ring[ring->queue_index] = NULL;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1875
interface->tx_ring[offset + i]->reg_idx = q_idx;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1876
interface->tx_ring[offset + i]->qos_pc = pc;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
1900
interface->tx_ring[i]->reg_idx = i;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
742
static int fm10k_tso(struct fm10k_ring *tx_ring,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
775
tx_desc = FM10K_TX_DESC(tx_ring, tx_ring->next_to_use);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
782
tx_ring->netdev->features &= ~NETIF_F_GSO_UDP_TUNNEL;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
784
netdev_err(tx_ring->netdev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
789
static void fm10k_tx_csum(struct fm10k_ring *tx_ring,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
811
dev_warn(tx_ring->dev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
813
tx_ring->tx_stats.csum_err++;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
854
dev_warn(tx_ring->dev,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
859
tx_ring->tx_stats.csum_err++;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
865
tx_ring->tx_stats.csum_good++;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
869
tx_desc = FM10K_TX_DESC(tx_ring, tx_ring->next_to_use);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
891
static bool fm10k_tx_desc_push(struct fm10k_ring *tx_ring,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
905
return i == tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
908
static int __fm10k_maybe_stop_tx(struct fm10k_ring *tx_ring, u16 size)
drivers/net/ethernet/intel/fm10k/fm10k_main.c
910
netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
916
if (likely(fm10k_desc_unused(tx_ring) < size))
drivers/net/ethernet/intel/fm10k/fm10k_main.c
920
netif_start_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
921
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
925
static inline int fm10k_maybe_stop_tx(struct fm10k_ring *tx_ring, u16 size)
drivers/net/ethernet/intel/fm10k/fm10k_main.c
927
if (likely(fm10k_desc_unused(tx_ring) >= size))
drivers/net/ethernet/intel/fm10k/fm10k_main.c
929
return __fm10k_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
932
static void fm10k_tx_map(struct fm10k_ring *tx_ring,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
943
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/fm10k/fm10k_main.c
946
tx_desc = FM10K_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
957
dma = dma_map_single(tx_ring->dev, data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
963
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/fm10k/fm10k_main.c
971
if (fm10k_tx_desc_push(tx_ring, tx_desc++, i++, dma,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
973
tx_desc = FM10K_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
984
if (fm10k_tx_desc_push(tx_ring, tx_desc++, i++,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
986
tx_desc = FM10K_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/fm10k/fm10k_main.c
993
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/intel/fm10k/fm10k_main.c
996
tx_buffer = &tx_ring->tx_buffer[i];
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
1242
ring = READ_ONCE(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
15
int fm10k_setup_tx_resources(struct fm10k_ring *tx_ring)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
17
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
170
static void fm10k_clean_tx_ring(struct fm10k_ring *tx_ring)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
176
if (!tx_ring->tx_buffer)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
180
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
181
struct fm10k_tx_buffer *tx_buffer = &tx_ring->tx_buffer[i];
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
183
fm10k_unmap_and_free_tx_resource(tx_ring, tx_buffer);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
187
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
189
size = sizeof(struct fm10k_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
190
memset(tx_ring->tx_buffer, 0, size);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
193
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
20
size = sizeof(struct fm10k_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
202
void fm10k_free_tx_resources(struct fm10k_ring *tx_ring)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
204
fm10k_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
206
vfree(tx_ring->tx_buffer);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
207
tx_ring->tx_buffer = NULL;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
210
if (!tx_ring->desc)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
213
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
214
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
215
tx_ring->desc = NULL;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
22
tx_ring->tx_buffer = vzalloc(size);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
227
fm10k_clean_tx_ring(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
23
if (!tx_ring->tx_buffer)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
241
fm10k_free_tx_resources(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
26
u64_stats_init(&tx_ring->syncp);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
29
tx_ring->size = tx_ring->count * sizeof(struct fm10k_tx_desc);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
30
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
32
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
33
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
34
if (!tx_ring->desc)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
40
vfree(tx_ring->tx_buffer);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
41
tx_ring->tx_buffer = NULL;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
575
err = fm10k_xmit_frame_ring(skb, interface->tx_ring[r_idx]);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
588
struct fm10k_ring *tx_ring;
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
596
tx_ring = interface->tx_ring[txqueue];
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
597
if (check_for_tx_hang(tx_ring) && fm10k_check_tx_hang(tx_ring))
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
60
err = fm10k_setup_tx_resources(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
73
fm10k_free_tx_resources(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
1932
if (fm10k_get_tx_pending(interface->tx_ring[i], false))
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
557
struct fm10k_ring *tx_ring = READ_ONCE(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
559
if (!tx_ring)
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
562
restart_queue += tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
563
tx_busy += tx_ring->tx_stats.tx_busy;
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
564
tx_csum_errors += tx_ring->tx_stats.csum_err;
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
565
bytes += tx_ring->stats.bytes;
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
566
pkts += tx_ring->stats.packets;
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
567
hw_csum_tx_good += tx_ring->tx_stats.csum_good;
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
650
struct fm10k_ring *tx_ring = interface->tx_ring[i];
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
652
if (tx_ring->next_to_use != tx_ring->next_to_clean) {
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
716
set_check_for_tx_hang(interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
963
fm10k_configure_tx_ring(interface, interface->tx_ring[i]);
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
967
fm10k_enable_tx_ring(interface, interface->tx_ring[i]);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
232
struct i40e_ring *tx_ring = READ_ONCE(vsi->tx_rings[i]);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
234
if (!tx_ring)
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
239
i, *tx_ring->state,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
240
tx_ring->queue_index,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
241
tx_ring->reg_idx);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
245
tx_ring->next_to_use,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
246
tx_ring->next_to_clean,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
247
tx_ring->ring_active);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
250
i, tx_ring->stats.packets,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
251
tx_ring->stats.bytes,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
252
tx_ring->tx_stats.restart_queue);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
256
tx_ring->tx_stats.tx_busy,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
257
tx_ring->tx_stats.tx_done_old,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
258
tx_ring->tx_stats.tx_stopped);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
261
i, tx_ring->size);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
264
i, tx_ring->dcb_tc);
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
267
i, tx_ring->itr_setting,
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
268
ITR_IS_DYNAMIC(tx_ring->itr_setting) ? "dynamic" : "fixed");
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2883
struct i40e_ring *rx_ring, *tx_ring;
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2897
tx_ring = vsi->tx_rings[queue];
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2902
if (ITR_IS_DYNAMIC(tx_ring->itr_setting))
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2906
ec->tx_coalesce_usecs = tx_ring->itr_setting & ~I40E_ITR_DYNAMIC;
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2966
struct i40e_ring *tx_ring = vsi->tx_rings[queue];
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2975
tx_ring->itr_setting = ITR_REG_ALIGN(ec->tx_coalesce_usecs);
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2983
tx_ring->itr_setting |= I40E_ITR_DYNAMIC;
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2985
tx_ring->itr_setting &= ~I40E_ITR_DYNAMIC;
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2990
q_vector = tx_ring->q_vector;
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2991
q_vector->tx.target_itr = ITR_TO_REG(tx_ring->itr_setting);
drivers/net/ethernet/intel/i40e/i40e_main.c
359
struct i40e_ring *tx_ring = NULL;
drivers/net/ethernet/intel/i40e/i40e_main.c
370
tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/i40e/i40e_main.c
3771
struct i40e_ring *tx_ring, *rx_ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
3779
tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/i40e/i40e_main.c
3781
tx_ring->dcb_tc = 0;
drivers/net/ethernet/intel/i40e/i40e_main.c
3794
tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/i40e/i40e_main.c
3796
tx_ring->dcb_tc = n;
drivers/net/ethernet/intel/i40e/i40e_main.c
386
if (tx_ring) {
drivers/net/ethernet/intel/i40e/i40e_main.c
387
head = i40e_get_head(tx_ring);
drivers/net/ethernet/intel/i40e/i40e_main.c
391
I40E_PFINT_DYN_CTLN(tx_ring->q_vector->v_idx +
drivers/net/ethernet/intel/i40e/i40e_main.c
392
tx_ring->vsi->base_vector - 1));
drivers/net/ethernet/intel/i40e/i40e_main.c
397
vsi->seid, txqueue, tx_ring->next_to_clean,
drivers/net/ethernet/intel/i40e/i40e_main.c
398
head, tx_ring->next_to_use,
drivers/net/ethernet/intel/i40e/i40e_main.c
399
readl(tx_ring->tail), val);
drivers/net/ethernet/intel/i40e/i40e_main.c
4427
static bool i40e_clean_fdir_tx_irq(struct i40e_ring *tx_ring, int budget)
drivers/net/ethernet/intel/i40e/i40e_main.c
4429
struct i40e_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/i40e/i40e_main.c
4430
u16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/i40e/i40e_main.c
4434
tx_buf = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/i40e/i40e_main.c
4435
tx_desc = I40E_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_main.c
4436
i -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_main.c
4463
i -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_main.c
4464
tx_buf = tx_ring->tx_bi;
drivers/net/ethernet/intel/i40e/i40e_main.c
4465
tx_desc = I40E_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/i40e/i40e_main.c
4468
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/i40e/i40e_main.c
4487
i -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_main.c
4488
tx_buf = tx_ring->tx_bi;
drivers/net/ethernet/intel/i40e/i40e_main.c
4489
tx_desc = I40E_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/i40e/i40e_main.c
4496
i += tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_main.c
4497
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/i40e/i40e_main.c
4500
i40e_irq_dynamic_enable(vsi, tx_ring->q_vector->v_idx);
drivers/net/ethernet/intel/i40e/i40e_main.c
4533
struct i40e_ring *tx_ring = vsi->tx_rings[qp_idx];
drivers/net/ethernet/intel/i40e/i40e_main.c
4536
tx_ring->q_vector = q_vector;
drivers/net/ethernet/intel/i40e/i40e_main.c
4537
tx_ring->next = q_vector->tx.ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
4538
q_vector->tx.ring = tx_ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
6053
struct i40e_ring *tx_ring, *rx_ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
6057
tx_ring = vsi->tx_rings[pf_q];
drivers/net/ethernet/intel/i40e/i40e_main.c
6058
tx_ring->ch = NULL;
drivers/net/ethernet/intel/i40e/i40e_main.c
6409
struct i40e_ring *tx_ring, *rx_ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
6417
tx_ring = vsi->tx_rings[pf_q];
drivers/net/ethernet/intel/i40e/i40e_main.c
6418
tx_ring->ch = ch;
drivers/net/ethernet/intel/i40e/i40e_main.c
7764
struct i40e_ring *tx_ring, *rx_ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
7770
tx_ring = vsi->tx_rings[pf_q];
drivers/net/ethernet/intel/i40e/i40e_main.c
7771
tx_ring->ch = NULL;
drivers/net/ethernet/intel/i40e/i40e_main.c
7849
struct i40e_ring *tx_ring, *rx_ring;
drivers/net/ethernet/intel/i40e/i40e_main.c
7855
tx_ring = vsi->tx_rings[pf_q];
drivers/net/ethernet/intel/i40e/i40e_main.c
7856
tx_ring->ch = iter;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
100
tx_ring = vsi->tx_rings[0];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1008
i -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1009
tx_buf = tx_ring->tx_bi;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
101
dev = tx_ring->dev;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1010
tx_desc = I40E_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1019
i += tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1020
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1021
i40e_update_tx_stats(tx_ring, total_packets, total_bytes);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1022
i40e_arm_wb(tx_ring, vsi, budget);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1024
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1028
netdev_tx_completed_queue(txring_txq(tx_ring),
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1032
if (unlikely(total_packets && netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1033
(I40E_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD))) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1038
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1039
tx_ring->queue_index) &&
drivers/net/ethernet/intel/i40e/i40e_txrx.c
104
for (i = I40E_FD_CLEAN_DELAY; I40E_DESC_UNUSED(tx_ring) < 2; i--) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1041
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1042
tx_ring->queue_index);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1043
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
116
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
117
first = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
118
i40e_fdir(tx_ring, fdir_data, add);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
121
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
122
tx_desc = I40E_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
123
tx_buf = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
125
tx_ring->next_to_use = ((i + 1) < tx_ring->count) ? i + 1 : 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1413
int i40e_setup_tx_descriptors(struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1415
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1422
WARN_ON(tx_ring->tx_bi);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1423
bi_size = sizeof(struct i40e_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1424
tx_ring->tx_bi = kzalloc(bi_size, GFP_KERNEL);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1425
if (!tx_ring->tx_bi)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1428
u64_stats_init(&tx_ring->syncp);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1431
tx_ring->size = tx_ring->count * sizeof(struct i40e_tx_desc);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1435
tx_ring->size += sizeof(u32);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1436
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1437
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1438
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1439
if (!tx_ring->desc) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1441
tx_ring->size);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1445
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1446
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1447
tx_ring->tx_stats.prev_pkt_ctr = -1;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1451
kfree(tx_ring->tx_bi);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
1452
tx_ring->tx_bi = NULL;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
150
writel(tx_ring->next_to_use, tx_ring->tail);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
23
static void i40e_fdir(struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
27
struct i40e_pf *pf = tx_ring->vsi->back;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2858
static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2862
struct i40e_pf *pf = tx_ring->vsi->back;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2882
if (!tx_ring->atr_sample_rate)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2928
tx_ring->atr_count++;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2934
(tx_ring->atr_count < tx_ring->atr_sample_rate))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2937
tx_ring->atr_count = 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2940
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2941
fdir_desc = I40E_TX_FDIRDESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2944
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2947
tx_ring->queue_index);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
2954
flex_ptype |= tx_ring->vsi->id << I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3002
struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3009
!(tx_ring->netdev->features & NETIF_F_HW_VLAN_CTAG_TX)) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3038
if (!test_bit(I40E_FLAG_DCB_ENA, tx_ring->vsi->back->flags))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3198
static int i40e_tsyn(struct i40e_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
32
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3213
pf = i40e_netdev_to_pf(tx_ring->netdev);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3244
struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
33
fdir_desc = I40E_TX_FDIRDESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3425
static void i40e_create_tx_ctx(struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3430
int i = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3437
context_desc = I40E_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3440
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3456
int __i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3458
netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3462
++tx_ring->tx_stats.tx_stopped;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3465
if (likely(I40E_DESC_UNUSED(tx_ring) < size))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3469
netif_start_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3470
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3570
static inline int i40e_tx_map(struct i40e_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3579
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3591
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3593
tx_desc = I40E_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3599
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
36
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3619
if (i == tx_ring->count) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3620
tx_desc = I40E_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3641
if (i == tx_ring->count) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3642
tx_desc = I40E_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3649
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3652
tx_bi = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3655
netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3658
if (i == tx_ring->count)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3661
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3663
i40e_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3671
desc_count |= ++tx_ring->packet_stride;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3676
tx_ring->packet_stride = 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3696
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more()) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3697
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3703
dev_info(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3707
tx_bi = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3708
i40e_unmap_and_free_tx_resource(tx_ring, tx_bi);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3712
i = tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3716
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3869
struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3884
i40e_trace(xmit_frame_ring, skb, tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3893
tx_ring->tx_stats.tx_linearize++;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3902
if (i40e_maybe_stop_tx(tx_ring, count + 4 + 1)) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3903
tx_ring->tx_stats.tx_busy++;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3908
first = &tx_ring->tx_bi[tx_ring->next_to_use];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3914
if (i40e_tx_prepare_vlan_flags(skb, tx_ring, &tx_flags))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3926
tx_ring, &cd_tunneling);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3930
tsyn = i40e_tsyn(tx_ring, skb, tx_flags, &cd_type_cmd_tso_mss);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3938
i40e_create_tx_ctx(tx_ring, cd_type_cmd_tso_mss,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3945
i40e_atr(tx_ring, skb, tx_flags);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3947
if (i40e_tx_map(tx_ring, skb, first, tx_flags, hdr_len,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3954
i40e_trace(xmit_frame_ring_drop, first->skb, tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3959
struct i40e_pf *pf = i40e_netdev_to_pf(tx_ring->netdev);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3980
struct i40e_ring *tx_ring = vsi->tx_rings[skb->queue_mapping];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
3988
return i40e_xmit_frame_ring(skb, tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
783
void i40e_clean_tx_ring(struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
788
if (ring_is_xdp(tx_ring) && tx_ring->xsk_pool) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
789
i40e_xsk_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
792
if (!tx_ring->tx_bi)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
796
for (i = 0; i < tx_ring->count; i++)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
797
i40e_unmap_and_free_tx_resource(tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
798
&tx_ring->tx_bi[i]);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
801
bi_size = sizeof(struct i40e_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
802
memset(tx_ring->tx_bi, 0, bi_size);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
805
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
807
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
808
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
810
if (!tx_ring->netdev)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
814
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/i40e/i40e_txrx.c
823
void i40e_free_tx_resources(struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_txrx.c
825
i40e_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
826
kfree(tx_ring->tx_bi);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
827
tx_ring->tx_bi = NULL;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
829
if (tx_ring->desc) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
830
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
831
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
832
tx_ring->desc = NULL;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
874
struct i40e_ring *tx_ring = NULL;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
88
struct i40e_ring *tx_ring;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
893
tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
894
if (tx_ring && tx_ring->desc) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
902
packets = tx_ring->stats.packets & INT_MAX;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
903
if (tx_ring->tx_stats.prev_pkt_ctr == packets) {
drivers/net/ethernet/intel/i40e/i40e_txrx.c
904
i40e_force_wb(vsi, tx_ring->q_vector);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
912
tx_ring->tx_stats.prev_pkt_ctr =
drivers/net/ethernet/intel/i40e/i40e_txrx.c
913
i40e_get_tx_pending(tx_ring, true) ? packets : -1;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
928
struct i40e_ring *tx_ring, int napi_budget,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
931
int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
938
tx_buf = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/i40e/i40e_txrx.c
939
tx_desc = I40E_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
940
i -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
942
tx_head = I40E_TX_DESC(tx_ring, i40e_get_head(tx_ring));
drivers/net/ethernet/intel/i40e/i40e_txrx.c
951
i40e_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
964
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/i40e/i40e_txrx.c
970
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/i40e/i40e_txrx.c
982
tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
988
i -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
989
tx_buf = tx_ring->tx_bi;
drivers/net/ethernet/intel/i40e/i40e_txrx.c
990
tx_desc = I40E_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/i40e/i40e_txrx.c
995
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/i40e/i40e_txrx.h
465
void i40e_clean_tx_ring(struct i40e_ring *tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.h
467
int i40e_setup_tx_descriptors(struct i40e_ring *tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.h
469
void i40e_free_tx_resources(struct i40e_ring *tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx.h
475
int __i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size);
drivers/net/ethernet/intel/i40e/i40e_txrx.h
489
static inline u32 i40e_get_head(struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_txrx.h
491
void *head = (struct i40e_tx_desc *)tx_ring->desc + tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_txrx.h
529
static inline int i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size)
drivers/net/ethernet/intel/i40e/i40e_txrx.h
531
if (likely(I40E_DESC_UNUSED(tx_ring) >= size))
drivers/net/ethernet/intel/i40e/i40e_txrx.h
533
return __i40e_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
106
void i40e_xsk_clean_tx_ring(struct i40e_ring *tx_ring);
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
46
static inline void i40e_update_tx_stats(struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
50
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
51
tx_ring->stats.bytes += total_bytes;
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
52
tx_ring->stats.packets += total_packets;
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
53
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
54
tx_ring->q_vector->tx.total_bytes += total_bytes;
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
55
tx_ring->q_vector->tx.total_packets += total_packets;
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
66
static inline void i40e_arm_wb(struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
70
if (tx_ring->flags & I40E_TXR_FLAGS_WB_ON_ITR) {
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
76
unsigned int j = i40e_get_tx_pending(tx_ring, false);
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
81
(I40E_DESC_UNUSED(tx_ring) != tx_ring->count))
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
82
tx_ring->arm_wb = true;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
612
static void i40e_clean_xdp_tx_buffer(struct i40e_ring *tx_ring,
drivers/net/ethernet/intel/i40e/i40e_xsk.c
616
tx_ring->xdp_tx_active--;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
617
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/i40e/i40e_xsk.c
630
bool i40e_clean_xdp_tx_irq(struct i40e_vsi *vsi, struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_xsk.c
632
struct xsk_buff_pool *bp = tx_ring->xsk_pool;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
634
u32 head_idx = i40e_get_head(tx_ring);
drivers/net/ethernet/intel/i40e/i40e_xsk.c
638
if (head_idx < tx_ring->next_to_clean)
drivers/net/ethernet/intel/i40e/i40e_xsk.c
639
head_idx += tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
640
completed_frames = head_idx - tx_ring->next_to_clean;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
645
if (likely(!tx_ring->xdp_tx_active)) {
drivers/net/ethernet/intel/i40e/i40e_xsk.c
650
ntc = tx_ring->next_to_clean;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
653
tx_bi = &tx_ring->tx_bi[ntc];
drivers/net/ethernet/intel/i40e/i40e_xsk.c
656
i40e_clean_xdp_tx_buffer(tx_ring, tx_bi);
drivers/net/ethernet/intel/i40e/i40e_xsk.c
662
if (++ntc >= tx_ring->count)
drivers/net/ethernet/intel/i40e/i40e_xsk.c
667
tx_ring->next_to_clean += completed_frames;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
668
if (unlikely(tx_ring->next_to_clean >= tx_ring->count))
drivers/net/ethernet/intel/i40e/i40e_xsk.c
669
tx_ring->next_to_clean -= tx_ring->count;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
674
i40e_arm_wb(tx_ring, vsi, completed_frames);
drivers/net/ethernet/intel/i40e/i40e_xsk.c
677
if (xsk_uses_need_wakeup(tx_ring->xsk_pool))
drivers/net/ethernet/intel/i40e/i40e_xsk.c
678
xsk_set_tx_need_wakeup(tx_ring->xsk_pool);
drivers/net/ethernet/intel/i40e/i40e_xsk.c
680
return i40e_xmit_zc(tx_ring, I40E_DESC_UNUSED(tx_ring));
drivers/net/ethernet/intel/i40e/i40e_xsk.c
746
void i40e_xsk_clean_tx_ring(struct i40e_ring *tx_ring)
drivers/net/ethernet/intel/i40e/i40e_xsk.c
748
u16 ntc = tx_ring->next_to_clean, ntu = tx_ring->next_to_use;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
749
struct xsk_buff_pool *bp = tx_ring->xsk_pool;
drivers/net/ethernet/intel/i40e/i40e_xsk.c
754
tx_bi = &tx_ring->tx_bi[ntc];
drivers/net/ethernet/intel/i40e/i40e_xsk.c
757
i40e_clean_xdp_tx_buffer(tx_ring, tx_bi);
drivers/net/ethernet/intel/i40e/i40e_xsk.c
764
if (ntc >= tx_ring->count)
drivers/net/ethernet/intel/i40e/i40e_xsk.h
29
bool i40e_clean_xdp_tx_irq(struct i40e_vsi *vsi, struct i40e_ring *tx_ring);
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
351
struct iavf_ring *tx_ring = NULL, *rx_ring = NULL;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
354
tx_ring = &adapter->tx_rings[i];
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
358
iavf_add_queue_stats(&data, tx_ring);
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
559
struct iavf_ring *rx_ring, *tx_ring;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
570
tx_ring = &adapter->tx_rings[queue];
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
575
if (ITR_IS_DYNAMIC(tx_ring->itr_setting))
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
579
ec->tx_coalesce_usecs = tx_ring->itr_setting & ~IAVF_ITR_DYNAMIC;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
630
struct iavf_ring *tx_ring = &adapter->tx_rings[queue];
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
643
itr_setting = tx_ring->itr_setting & ~IAVF_ITR_DYNAMIC;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
653
tx_ring->itr_setting = ITR_REG_ALIGN(ec->tx_coalesce_usecs);
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
659
tx_ring->itr_setting |= IAVF_ITR_DYNAMIC;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
661
tx_ring->itr_setting ^= IAVF_ITR_DYNAMIC;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
666
q_vector = tx_ring->q_vector;
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
667
q_vector->tx.target_itr = ITR_TO_REG(tx_ring->itr_setting);
drivers/net/ethernet/intel/iavf/iavf_main.c
1472
struct iavf_ring *tx_ring = &adapter->tx_rings[i];
drivers/net/ethernet/intel/iavf/iavf_main.c
1476
tx_ring->flags &=
drivers/net/ethernet/intel/iavf/iavf_main.c
1484
tx_ring->flags |= IAVF_TXRX_FLAGS_VLAN_TAG_LOC_L2TAG1;
drivers/net/ethernet/intel/iavf/iavf_main.c
1518
tx_ring->flags |=
drivers/net/ethernet/intel/iavf/iavf_main.c
1522
tx_ring->flags |=
drivers/net/ethernet/intel/iavf/iavf_main.c
1527
tx_ring->flags |=
drivers/net/ethernet/intel/iavf/iavf_main.c
1531
tx_ring->flags |=
drivers/net/ethernet/intel/iavf/iavf_main.c
1574
struct iavf_ring *tx_ring;
drivers/net/ethernet/intel/iavf/iavf_main.c
1577
tx_ring = &adapter->tx_rings[i];
drivers/net/ethernet/intel/iavf/iavf_main.c
1579
tx_ring->queue_index = i;
drivers/net/ethernet/intel/iavf/iavf_main.c
1580
tx_ring->netdev = adapter->netdev;
drivers/net/ethernet/intel/iavf/iavf_main.c
1581
tx_ring->dev = &adapter->pdev->dev;
drivers/net/ethernet/intel/iavf/iavf_main.c
1582
tx_ring->count = adapter->tx_desc_count;
drivers/net/ethernet/intel/iavf/iavf_main.c
1583
tx_ring->itr_setting = IAVF_ITR_TX_DEF;
drivers/net/ethernet/intel/iavf/iavf_main.c
1585
tx_ring->flags |= IAVF_TXR_FLAGS_WB_ON_ITR;
drivers/net/ethernet/intel/iavf/iavf_main.c
458
struct iavf_ring *tx_ring = &adapter->tx_rings[t_idx];
drivers/net/ethernet/intel/iavf/iavf_main.c
461
tx_ring->q_vector = q_vector;
drivers/net/ethernet/intel/iavf/iavf_main.c
462
tx_ring->next = q_vector->tx.ring;
drivers/net/ethernet/intel/iavf/iavf_main.c
463
tx_ring->vsi = &adapter->vsi;
drivers/net/ethernet/intel/iavf/iavf_main.c
464
q_vector->tx.ring = tx_ring;
drivers/net/ethernet/intel/iavf/iavf_main.c
467
q_vector->tx.target_itr = ITR_TO_REG(tx_ring->itr_setting);
drivers/net/ethernet/intel/iavf/iavf_main.c
5089
struct iavf_ring *tx_ring;
drivers/net/ethernet/intel/iavf/iavf_main.c
5101
tx_ring = &adapter->tx_rings[handle->id];
drivers/net/ethernet/intel/iavf/iavf_main.c
5103
tx_ring->q_shaper.bw_min = div_u64(shaper->bw_min, 1000);
drivers/net/ethernet/intel/iavf/iavf_main.c
5104
tx_ring->q_shaper.bw_max = div_u64(shaper->bw_max, 1000);
drivers/net/ethernet/intel/iavf/iavf_main.c
5105
tx_ring->q_shaper_update = true;
drivers/net/ethernet/intel/iavf/iavf_main.c
5117
struct iavf_ring *tx_ring;
drivers/net/ethernet/intel/iavf/iavf_main.c
5124
tx_ring = &adapter->tx_rings[handle->id];
drivers/net/ethernet/intel/iavf/iavf_main.c
5125
tx_ring->q_shaper.bw_min = 0;
drivers/net/ethernet/intel/iavf/iavf_main.c
5126
tx_ring->q_shaper.bw_max = 0;
drivers/net/ethernet/intel/iavf/iavf_main.c
5127
tx_ring->q_shaper_update = true;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
101
if (!tx_ring->netdev)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
105
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/iavf/iavf_txrx.c
114
void iavf_free_tx_resources(struct iavf_ring *tx_ring)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
116
iavf_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
117
kfree(tx_ring->tx_bi);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
118
tx_ring->tx_bi = NULL;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
120
if (tx_ring->desc) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
121
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
122
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
123
tx_ring->desc = NULL;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
1697
struct iavf_ring *tx_ring, u32 *flags)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
1709
if (tx_ring->flags & IAVF_TXR_FLAGS_VLAN_TAG_LOC_L2TAG2) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
1711
} else if (tx_ring->flags & IAVF_TXRX_FLAGS_VLAN_TAG_LOC_L2TAG1) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
1714
dev_dbg(tx_ring->dev, "Unsupported Tx VLAN tag location requested\n");
drivers/net/ethernet/intel/iavf/iavf_txrx.c
179
struct iavf_ring *tx_ring = NULL;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
1847
struct iavf_ring *tx_ring,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
198
tx_ring = &vsi->back->tx_rings[i];
drivers/net/ethernet/intel/iavf/iavf_txrx.c
199
if (tx_ring && tx_ring->desc) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2009
static void iavf_create_tx_ctx(struct iavf_ring *tx_ring,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2014
int i = tx_ring->next_to_use;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2021
context_desc = IAVF_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2024
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
207
packets = tx_ring->stats.packets & INT_MAX;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
208
if (tx_ring->prev_pkt_ctr == packets) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
209
iavf_force_wb(vsi, tx_ring->q_vector);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2124
int __iavf_maybe_stop_tx(struct iavf_ring *tx_ring, int size)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2126
netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2131
if (likely(IAVF_DESC_UNUSED(tx_ring) < size))
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2135
netif_start_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2136
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2150
static void iavf_tx_map(struct iavf_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2159
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
217
tx_ring->prev_pkt_ctr =
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2170
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2172
tx_desc = IAVF_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2178
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/iavf/iavf_txrx.c
218
iavf_get_tx_pending(tx_ring, true) ? packets : -1;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2197
if (i == tx_ring->count) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2198
tx_desc = IAVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2218
if (i == tx_ring->count) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2219
tx_desc = IAVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2226
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2229
tx_bi = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2232
netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2235
if (i == tx_ring->count)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2238
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2240
iavf_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2261
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more()) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2262
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2268
dev_info(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2272
tx_bi = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2273
iavf_unmap_and_free_tx_resource(tx_ring, tx_bi);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2277
i = tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2281
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2292
struct iavf_ring *tx_ring)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2307
iavf_trace(xmit_frame_ring, skb, tx_ring);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2316
tx_ring->tx_stats.tx_linearize++;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2325
if (iavf_maybe_stop_tx(tx_ring, count + 4 + 1)) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2326
tx_ring->tx_stats.tx_busy++;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2331
first = &tx_ring->tx_bi[tx_ring->next_to_use];
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2337
iavf_tx_prepare_vlan_flags(skb, tx_ring, &tx_flags);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
234
struct iavf_ring *tx_ring, int napi_budget)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
236
int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2362
tx_ring, &cd_tunneling);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2369
iavf_create_tx_ctx(tx_ring, cd_type_cmd_tso_mss,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2372
iavf_tx_map(tx_ring, skb, first, tx_flags, hdr_len,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2378
iavf_trace(xmit_frame_ring_drop, first->skb, tx_ring);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2394
struct iavf_ring *tx_ring = &adapter->tx_rings[skb->queue_mapping];
drivers/net/ethernet/intel/iavf/iavf_txrx.c
2406
return iavf_xmit_frame_ring(skb, tx_ring);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
242
tx_buf = &tx_ring->tx_bi[i];
drivers/net/ethernet/intel/iavf/iavf_txrx.c
243
tx_desc = IAVF_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
244
i -= tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
256
iavf_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
273
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
285
tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
291
i -= tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
292
tx_buf = tx_ring->tx_bi;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
293
tx_desc = IAVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
298
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
311
i -= tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
312
tx_buf = tx_ring->tx_bi;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
313
tx_desc = IAVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
322
i += tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
323
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
324
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
325
tx_ring->stats.bytes += total_bytes;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
326
tx_ring->stats.packets += total_packets;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
327
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
328
tx_ring->q_vector->tx.total_bytes += total_bytes;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
329
tx_ring->q_vector->tx.total_packets += total_packets;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
331
if (tx_ring->flags & IAVF_TXR_FLAGS_WB_ON_ITR) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
337
unsigned int j = iavf_get_tx_pending(tx_ring, false);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
342
(IAVF_DESC_UNUSED(tx_ring) != tx_ring->count))
drivers/net/ethernet/intel/iavf/iavf_txrx.c
343
tx_ring->flags |= IAVF_TXR_FLAGS_ARM_WB;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
347
netdev_tx_completed_queue(txring_txq(tx_ring),
drivers/net/ethernet/intel/iavf/iavf_txrx.c
351
if (unlikely(total_packets && netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/iavf/iavf_txrx.c
352
(IAVF_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD))) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
357
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
358
tx_ring->queue_index) &&
drivers/net/ethernet/intel/iavf/iavf_txrx.c
360
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
361
tx_ring->queue_index);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
362
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
670
int iavf_setup_tx_descriptors(struct iavf_ring *tx_ring)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
672
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
679
WARN_ON(tx_ring->tx_bi);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
680
bi_size = sizeof(struct iavf_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
681
tx_ring->tx_bi = kzalloc(bi_size, GFP_KERNEL);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
682
if (!tx_ring->tx_bi)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
686
tx_ring->size = tx_ring->count * sizeof(struct iavf_tx_desc);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
687
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
688
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/intel/iavf/iavf_txrx.c
689
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
690
if (!tx_ring->desc) {
drivers/net/ethernet/intel/iavf/iavf_txrx.c
692
tx_ring->size);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
696
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
697
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
698
tx_ring->prev_pkt_ctr = -1;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
702
kfree(tx_ring->tx_bi);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
703
tx_ring->tx_bi = NULL;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
79
static void iavf_clean_tx_ring(struct iavf_ring *tx_ring)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
85
if (!tx_ring->tx_bi)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
89
for (i = 0; i < tx_ring->count; i++)
drivers/net/ethernet/intel/iavf/iavf_txrx.c
90
iavf_unmap_and_free_tx_resource(tx_ring, &tx_ring->tx_bi[i]);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
92
bi_size = sizeof(struct iavf_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
93
memset(tx_ring->tx_bi, 0, bi_size);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
96
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/iavf/iavf_txrx.c
98
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/iavf/iavf_txrx.c
99
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/iavf/iavf_txrx.h
314
int iavf_setup_tx_descriptors(struct iavf_ring *tx_ring);
drivers/net/ethernet/intel/iavf/iavf_txrx.h
316
void iavf_free_tx_resources(struct iavf_ring *tx_ring);
drivers/net/ethernet/intel/iavf/iavf_txrx.h
320
int __iavf_maybe_stop_tx(struct iavf_ring *tx_ring, int size);
drivers/net/ethernet/intel/iavf/iavf_txrx.h
356
static inline int iavf_maybe_stop_tx(struct iavf_ring *tx_ring, int size)
drivers/net/ethernet/intel/iavf/iavf_txrx.h
358
if (likely(IAVF_DESC_UNUSED(tx_ring) >= size))
drivers/net/ethernet/intel/iavf/iavf_txrx.h
360
return __iavf_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
1790
struct iavf_ring *tx_ring = &adapter->tx_rings[i];
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
1792
q_shaper = &tx_ring->q_shaper;
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
1793
if (tx_ring->q_shaper_update) {
drivers/net/ethernet/intel/ice/devlink/health.c
385
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/devlink/health.c
398
skb = event->tx_ring->tx_buf->skb;
drivers/net/ethernet/intel/ice/devlink/health.c
406
devlink_fmsg_put(fmsg, "irq-mapping", event->tx_ring->q_vector->name);
drivers/net/ethernet/intel/ice/devlink/health.c
407
ice_fmsg_put_ptr(fmsg, "desc-ptr", event->tx_ring->desc);
drivers/net/ethernet/intel/ice/devlink/health.c
408
ice_fmsg_put_ptr(fmsg, "dma-ptr", (void *)(long)event->tx_ring->dma);
drivers/net/ethernet/intel/ice/devlink/health.c
410
devlink_fmsg_binary_pair_put(fmsg, "desc", event->tx_ring->desc,
drivers/net/ethernet/intel/ice/devlink/health.c
411
event->tx_ring->count * sizeof(struct ice_tx_desc));
drivers/net/ethernet/intel/ice/devlink/health.c
418
void ice_prep_tx_hang_report(struct ice_pf *pf, struct ice_tx_ring *tx_ring,
drivers/net/ethernet/intel/ice/devlink/health.c
423
buf->tx_ring = tx_ring;
drivers/net/ethernet/intel/ice/devlink/health.c
432
struct ice_tx_ring *tx_ring = buf->tx_ring;
drivers/net/ethernet/intel/ice/devlink/health.c
438
.queue = tx_ring->q_index,
drivers/net/ethernet/intel/ice/devlink/health.c
439
.next_to_clean = tx_ring->next_to_clean,
drivers/net/ethernet/intel/ice/devlink/health.c
440
.next_to_use = tx_ring->next_to_use,
drivers/net/ethernet/intel/ice/devlink/health.c
441
.tx_ring = tx_ring,
drivers/net/ethernet/intel/ice/devlink/health.h
49
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/devlink/health.h
65
void ice_prep_tx_hang_report(struct ice_pf *pf, struct ice_tx_ring *tx_ring,
drivers/net/ethernet/intel/ice/ice_base.c
1003
ice_cfg_tstamp(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_base.c
1008
struct ice_tstamp_ring *tstamp_ring = tx_ring->tstamp_ring;
drivers/net/ethernet/intel/ice/ice_base.c
1010
struct ice_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_base.c
1013
u16 pf_q = tx_ring->reg_idx;
drivers/net/ethernet/intel/ice/ice_base.c
1440
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_base.c
1448
tx_ring = vsi->tx_rings[q_idx];
drivers/net/ethernet/intel/ice/ice_base.c
1459
ice_fill_txq_meta(vsi, tx_ring, &txq_meta);
drivers/net/ethernet/intel/ice/ice_base.c
1460
err = ice_vsi_stop_tx_ring(vsi, ICE_NO_RESET, 0, tx_ring, &txq_meta);
drivers/net/ethernet/intel/ice/ice_base.c
182
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_base.c
193
ice_for_each_tx_ring(tx_ring, vsi->q_vectors[v_idx]->tx)
drivers/net/ethernet/intel/ice/ice_base.c
194
tx_ring->q_vector = NULL;
drivers/net/ethernet/intel/ice/ice_base.c
406
struct ice_tx_ring *tx_ring = ring->tx_ring;
drivers/net/ethernet/intel/ice/ice_base.c
407
struct ice_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_base.c
420
err = ice_set_txq_ctx_vmvf(tx_ring, &txtime_ctx->vmvf_type,
drivers/net/ethernet/intel/ice/ice_base.c
426
if (tx_ring->ch)
drivers/net/ethernet/intel/ice/ice_base.c
427
txtime_ctx->src_vsi = tx_ring->ch->vsi_num;
drivers/net/ethernet/intel/ice/ice_base.c
444
u16 ice_calc_ts_ring_count(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_base.c
447
struct ice_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_base.c
464
return tx_ring->count + max_fetch_desc;
drivers/net/ethernet/intel/ice/ice_base.c
947
q_vector->tx.tx_ring = NULL;
drivers/net/ethernet/intel/ice/ice_base.c
952
struct ice_tx_ring *tx_ring = vsi->tx_rings[q_id];
drivers/net/ethernet/intel/ice/ice_base.c
954
tx_ring->q_vector = q_vector;
drivers/net/ethernet/intel/ice/ice_base.c
955
tx_ring->next = q_vector->tx.tx_ring;
drivers/net/ethernet/intel/ice/ice_base.c
956
q_vector->tx.tx_ring = tx_ring;
drivers/net/ethernet/intel/ice/ice_base.h
37
u16 ice_calc_ts_ring_count(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
218
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
226
tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
227
tx_ring->dcb_tc = 0;
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
928
ice_tx_prepare_vlan_flags_dcb(struct ice_tx_ring *tx_ring,
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
933
if (!test_bit(ICE_FLAG_DCB_ENA, tx_ring->vsi->back->flags))
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
946
if (tx_ring->flags & ICE_TX_FLAGS_RING_VLAN_L2TAG2)
drivers/net/ethernet/intel/ice/ice_dcb_lib.h
111
ice_tx_prepare_vlan_flags_dcb(struct ice_tx_ring __always_unused *tx_ring,
drivers/net/ethernet/intel/ice/ice_dcb_lib.h
31
ice_tx_prepare_vlan_flags_dcb(struct ice_tx_ring *tx_ring,
drivers/net/ethernet/intel/ice/ice_ethtool.c
1179
static int ice_diag_send(struct ice_tx_ring *tx_ring, u8 *data, u16 size)
drivers/net/ethernet/intel/ice/ice_ethtool.c
1186
tx_desc = ICE_TX_DESC(tx_ring, tx_ring->next_to_use);
drivers/net/ethernet/intel/ice/ice_ethtool.c
1187
tx_buf = &tx_ring->tx_buf[tx_ring->next_to_use];
drivers/net/ethernet/intel/ice/ice_ethtool.c
1189
dma = dma_map_single(tx_ring->dev, data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/ice/ice_ethtool.c
1190
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/ice/ice_ethtool.c
1211
tx_ring->next_to_use++;
drivers/net/ethernet/intel/ice/ice_ethtool.c
1212
if (tx_ring->next_to_use >= tx_ring->count)
drivers/net/ethernet/intel/ice/ice_ethtool.c
1213
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/ice/ice_ethtool.c
1215
writel_relaxed(tx_ring->next_to_use, tx_ring->tail);
drivers/net/ethernet/intel/ice/ice_ethtool.c
1219
dma_unmap_single(tx_ring->dev, dma, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/ice/ice_ethtool.c
1277
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_ethtool.c
1290
tx_ring = test_vsi->tx_rings[0];
drivers/net/ethernet/intel/ice/ice_ethtool.c
1325
num_frames = min_t(int, tx_ring->count, 32);
drivers/net/ethernet/intel/ice/ice_ethtool.c
1327
if (ice_diag_send(tx_ring, tx_frame, ICE_LB_FRAME_SIZE)) {
drivers/net/ethernet/intel/ice/ice_ethtool.c
1927
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_ethtool.c
1959
tx_ring = READ_ONCE(vsi->tx_rings[j]);
drivers/net/ethernet/intel/ice/ice_ethtool.c
1960
if (!tx_ring || !tx_ring->ring_stats) {
drivers/net/ethernet/intel/ice/ice_ethtool.c
1966
ice_fetch_tx_ring_stats(tx_ring, &pkts, &bytes);
drivers/net/ethernet/intel/ice/ice_lib.c
1361
q_vector->tx.tx_ring = NULL;
drivers/net/ethernet/intel/ice/ice_lib.c
1842
if (rc->tx_ring)
drivers/net/ethernet/intel/ice/ice_lib.c
1843
return rc->tx_ring->q_vector;
drivers/net/ethernet/intel/ice/ice_lib.c
3445
void ice_update_tx_ring_stats(struct ice_tx_ring *tx_ring, u64 pkts, u64 bytes)
drivers/net/ethernet/intel/ice/ice_lib.c
3447
u64_stats_update_begin(&tx_ring->ring_stats->syncp);
drivers/net/ethernet/intel/ice/ice_lib.c
3448
u64_stats_add(&tx_ring->ring_stats->pkts, pkts);
drivers/net/ethernet/intel/ice/ice_lib.c
3449
u64_stats_add(&tx_ring->ring_stats->bytes, bytes);
drivers/net/ethernet/intel/ice/ice_lib.c
3450
u64_stats_update_end(&tx_ring->ring_stats->syncp);
drivers/net/ethernet/intel/ice/ice_lib.c
488
if (!q_vector->tx.tx_ring)
drivers/net/ethernet/intel/ice/ice_lib.c
492
ice_clean_ctrl_tx_irq(q_vector->tx.tx_ring);
drivers/net/ethernet/intel/ice/ice_lib.c
506
if (!q_vector->tx.tx_ring && !q_vector->rx.rx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
142
struct ice_tx_ring *tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/ice/ice_main.c
145
if (!tx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
147
if (ice_ring_ch_enabled(tx_ring))
drivers/net/ethernet/intel/ice/ice_main.c
150
ring_stats = tx_ring->ring_stats;
drivers/net/ethernet/intel/ice/ice_main.c
154
if (tx_ring->desc) {
drivers/net/ethernet/intel/ice/ice_main.c
165
ice_trigger_sw_intr(hw, tx_ring->q_vector);
drivers/net/ethernet/intel/ice/ice_main.c
174
ice_get_tx_pending(tx_ring) ? packets : -1;
drivers/net/ethernet/intel/ice/ice_main.c
2370
if (pf->health_reporters.tx_hang_buf.tx_ring) {
drivers/net/ethernet/intel/ice/ice_main.c
2372
pf->health_reporters.tx_hang_buf.tx_ring = NULL;
drivers/net/ethernet/intel/ice/ice_main.c
2549
if (q_vector->tx.tx_ring && q_vector->rx.rx_ring) {
drivers/net/ethernet/intel/ice/ice_main.c
2556
} else if (q_vector->tx.tx_ring) {
drivers/net/ethernet/intel/ice/ice_main.c
2712
xdp_ring->next = q_vector->tx.tx_ring;
drivers/net/ethernet/intel/ice/ice_main.c
2713
q_vector->tx.tx_ring = xdp_ring;
drivers/net/ethernet/intel/ice/ice_main.c
2742
q_vector->tx.tx_ring = ring;
drivers/net/ethernet/intel/ice/ice_main.c
6766
if (q_vector->rx.rx_ring || q_vector->tx.tx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
7265
if (q_vector->rx.rx_ring || q_vector->tx.tx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
8280
struct ice_tx_ring *tx_ring = NULL;
drivers/net/ethernet/intel/ice/ice_main.c
8301
tx_ring = vsi->tx_rings[i];
drivers/net/ethernet/intel/ice/ice_main.c
8314
if (tx_ring) {
drivers/net/ethernet/intel/ice/ice_main.c
8321
intr = rd32(hw, GLINT_DYN_CTL(tx_ring->q_vector->reg_idx));
drivers/net/ethernet/intel/ice/ice_main.c
8324
vsi->vsi_num, txqueue, tx_ring->next_to_clean,
drivers/net/ethernet/intel/ice/ice_main.c
8325
head, tx_ring->next_to_use, intr);
drivers/net/ethernet/intel/ice/ice_main.c
8327
ice_prep_tx_hang_report(pf, tx_ring, vsi->vsi_num, head, intr);
drivers/net/ethernet/intel/ice/ice_main.c
8688
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_main.c
8691
tx_ring = vsi->tx_rings[ch->base_q + i];
drivers/net/ethernet/intel/ice/ice_main.c
8693
if (!tx_ring || !rx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
8697
tx_ring->ch = ch;
drivers/net/ethernet/intel/ice/ice_main.c
8701
tx_q_vector = tx_ring->q_vector;
drivers/net/ethernet/intel/ice/ice_main.c
8981
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_main.c
8984
tx_ring = vsi->tx_rings[ch->base_q + i];
drivers/net/ethernet/intel/ice/ice_main.c
8986
if (tx_ring) {
drivers/net/ethernet/intel/ice/ice_main.c
8987
tx_ring->ch = NULL;
drivers/net/ethernet/intel/ice/ice_main.c
8988
if (tx_ring->q_vector)
drivers/net/ethernet/intel/ice/ice_main.c
8989
tx_ring->q_vector->ch = NULL;
drivers/net/ethernet/intel/ice/ice_main.c
9371
static int ice_cfg_txtime(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
9379
if (!tx_ring)
drivers/net/ethernet/intel/ice/ice_main.c
9382
vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_main.c
9391
queue = tx_ring->q_index;
drivers/net/ethernet/intel/ice/ice_main.c
9420
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_main.c
9436
tx_ring = vsi->tx_rings[qopt->queue];
drivers/net/ethernet/intel/ice/ice_main.c
9437
ret = ice_cfg_txtime(tx_ring);
drivers/net/ethernet/intel/ice/ice_trace.h
103
__entry->q_vector->tx.tx_ring->q_index,
drivers/net/ethernet/intel/ice/ice_trace.h
95
__string(devname, q_vector->tx.tx_ring->netdev->name)),
drivers/net/ethernet/intel/ice/ice_txrx.c
103
writel(tx_ring->next_to_use, tx_ring->tail);
drivers/net/ethernet/intel/ice/ice_txrx.c
1094
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
1096
ice_for_each_tx_ring(tx_ring, *rc) {
drivers/net/ethernet/intel/ice/ice_txrx.c
1097
if (!tx_ring->ring_stats)
drivers/net/ethernet/intel/ice/ice_txrx.c
1100
ice_fetch_tx_ring_stats(tx_ring, &pkts, &bytes);
drivers/net/ethernet/intel/ice/ice_txrx.c
1270
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
1279
ice_for_each_tx_ring(tx_ring, q_vector->tx) {
drivers/net/ethernet/intel/ice/ice_txrx.c
1280
struct xsk_buff_pool *xsk_pool = READ_ONCE(tx_ring->xsk_pool);
drivers/net/ethernet/intel/ice/ice_txrx.c
1284
wd = ice_xmit_zc(tx_ring, xsk_pool);
drivers/net/ethernet/intel/ice/ice_txrx.c
1285
else if (ice_ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ice/ice_txrx.c
1288
wd = ice_clean_tx_irq(tx_ring, budget);
drivers/net/ethernet/intel/ice/ice_txrx.c
1355
static int __ice_maybe_stop_tx(struct ice_tx_ring *tx_ring, unsigned int size)
drivers/net/ethernet/intel/ice/ice_txrx.c
1357
netif_tx_stop_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/ice/ice_txrx.c
1362
if (likely(ICE_DESC_UNUSED(tx_ring) < size))
drivers/net/ethernet/intel/ice/ice_txrx.c
1366
netif_tx_start_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/ice/ice_txrx.c
1367
ice_stats_inc(tx_ring->ring_stats, tx_restart_q);
drivers/net/ethernet/intel/ice/ice_txrx.c
1378
static int ice_maybe_stop_tx(struct ice_tx_ring *tx_ring, unsigned int size)
drivers/net/ethernet/intel/ice/ice_txrx.c
1380
if (likely(ICE_DESC_UNUSED(tx_ring) >= size))
drivers/net/ethernet/intel/ice/ice_txrx.c
1383
return __ice_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/ice/ice_txrx.c
1397
ice_tx_map(struct ice_tx_ring *tx_ring, struct ice_tx_buf *first,
drivers/net/ethernet/intel/ice/ice_txrx.c
1401
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ice/ice_txrx.c
1418
tx_desc = ICE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ice/ice_txrx.c
1425
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/ice/ice_txrx.c
1432
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/ice/ice_txrx.c
1454
if (i == tx_ring->count) {
drivers/net/ethernet/intel/ice/ice_txrx.c
1455
tx_desc = ICE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ice/ice_txrx.c
1475
if (i == tx_ring->count) {
drivers/net/ethernet/intel/ice/ice_txrx.c
1476
tx_desc = ICE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ice/ice_txrx.c
1483
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/intel/ice/ice_txrx.c
1486
tx_buf = &tx_ring->tx_buf[i];
drivers/net/ethernet/intel/ice/ice_txrx.c
1494
if (i == tx_ring->count)
drivers/net/ethernet/intel/ice/ice_txrx.c
1513
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/ice/ice_txrx.c
1515
ice_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/ice/ice_txrx.c
1518
kick = __netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount,
drivers/net/ethernet/intel/ice/ice_txrx.c
152
static void ice_clean_tstamp_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
1523
if (ice_is_txtime_cfg(tx_ring)) {
drivers/net/ethernet/intel/ice/ice_txrx.c
1524
struct ice_tstamp_ring *tstamp_ring = tx_ring->tstamp_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
1539
u32 fetch = tstamp_count - tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
154
struct ice_tstamp_ring *tstamp_ring = tx_ring->tstamp_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
1558
writel_relaxed(i, tx_ring->tail);
drivers/net/ethernet/intel/ice/ice_txrx.c
1565
tx_buf = &tx_ring->tx_buf[i];
drivers/net/ethernet/intel/ice/ice_txrx.c
1566
ice_unmap_and_free_tx_buf(tx_ring, tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
1570
i = tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
1574
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/ice/ice_txrx.c
1587
const struct ice_tx_ring *tx_ring = off->tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
170
void ice_free_tstamp_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
172
struct ice_tstamp_ring *tstamp_ring = tx_ring->tstamp_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
1737
if ((tx_ring->netdev->features & NETIF_F_HW_CSUM) &&
drivers/net/ethernet/intel/ice/ice_txrx.c
178
ice_clean_tstamp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
1803
ice_tx_prepare_vlan_flags(struct ice_tx_ring *tx_ring, struct ice_tx_buf *first)
drivers/net/ethernet/intel/ice/ice_txrx.c
181
dmam_free_coherent(tx_ring->dev, size, tstamp_ring->desc,
drivers/net/ethernet/intel/ice/ice_txrx.c
1817
if (tx_ring->flags & ICE_TX_FLAGS_RING_VLAN_L2TAG2)
drivers/net/ethernet/intel/ice/ice_txrx.c
1823
ice_tx_prepare_vlan_flags_dcb(tx_ring, first);
drivers/net/ethernet/intel/ice/ice_txrx.c
190
void ice_free_tx_tstamp_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
192
ice_free_tstamp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
193
kfree_rcu(tx_ring->tstamp_ring, rcu);
drivers/net/ethernet/intel/ice/ice_txrx.c
194
tx_ring->tstamp_ring = NULL;
drivers/net/ethernet/intel/ice/ice_txrx.c
195
tx_ring->flags &= ~ICE_TX_FLAGS_TXTIME;
drivers/net/ethernet/intel/ice/ice_txrx.c
202
void ice_clean_tx_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
207
if (ice_ring_is_xdp(tx_ring) && tx_ring->xsk_pool) {
drivers/net/ethernet/intel/ice/ice_txrx.c
208
ice_xsk_clean_xdp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
2116
ice_tstamp(struct ice_tx_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/ice/ice_txrx.c
213
if (!tx_ring->tx_buf)
drivers/net/ethernet/intel/ice/ice_txrx.c
2130
idx = ice_ptp_request_ts(tx_ring->tx_tstamps, skb);
drivers/net/ethernet/intel/ice/ice_txrx.c
2132
tx_ring->vsi->back->ptp.tx_hwtstamp_skipped++;
drivers/net/ethernet/intel/ice/ice_txrx.c
2150
ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
2153
struct ice_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_txrx.c
2159
ice_trace(xmit_frame_ring, tx_ring, skb);
drivers/net/ethernet/intel/ice/ice_txrx.c
2166
ice_stats_inc(tx_ring->ring_stats, tx_linearize);
drivers/net/ethernet/intel/ice/ice_txrx.c
217
for (i = 0; i < tx_ring->count; i++)
drivers/net/ethernet/intel/ice/ice_txrx.c
2175
if (ice_maybe_stop_tx(tx_ring, count + ICE_DESCS_PER_CACHE_LINE +
drivers/net/ethernet/intel/ice/ice_txrx.c
2177
ice_stats_inc(tx_ring->ring_stats, tx_busy);
drivers/net/ethernet/intel/ice/ice_txrx.c
218
ice_unmap_and_free_tx_buf(tx_ring, &tx_ring->tx_buf[i]);
drivers/net/ethernet/intel/ice/ice_txrx.c
2182
netdev_txq_bql_enqueue_prefetchw(txring_txq(tx_ring));
drivers/net/ethernet/intel/ice/ice_txrx.c
2184
offload.tx_ring = tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
2187
first = &tx_ring->tx_buf[tx_ring->next_to_use];
drivers/net/ethernet/intel/ice/ice_txrx.c
2195
ice_tx_prepare_vlan_flags(tx_ring, first);
drivers/net/ethernet/intel/ice/ice_txrx.c
221
memset(tx_ring->tx_buf, 0, sizeof(*tx_ring->tx_buf) * tx_ring->count);
drivers/net/ethernet/intel/ice/ice_txrx.c
2228
ice_tstamp(tx_ring, skb, first, &offload);
drivers/net/ethernet/intel/ice/ice_txrx.c
223
size = ALIGN(tx_ring->count * sizeof(struct ice_tx_desc),
drivers/net/ethernet/intel/ice/ice_txrx.c
2232
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ice/ice_txrx.c
2235
cdesc = ICE_TX_CTX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ice/ice_txrx.c
2237
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/ice/ice_txrx.c
2246
ice_tx_map(tx_ring, first, &offload);
drivers/net/ethernet/intel/ice/ice_txrx.c
2250
ice_trace(xmit_frame_ring_drop, tx_ring, skb);
drivers/net/ethernet/intel/ice/ice_txrx.c
226
memset(tx_ring->desc, 0, size);
drivers/net/ethernet/intel/ice/ice_txrx.c
2266
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
2268
tx_ring = vsi->tx_rings[skb->queue_mapping];
drivers/net/ethernet/intel/ice/ice_txrx.c
2276
return ice_xmit_frame_ring(skb, tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
228
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/ice/ice_txrx.c
229
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/ice/ice_txrx.c
231
if (!tx_ring->netdev)
drivers/net/ethernet/intel/ice/ice_txrx.c
2316
void ice_clean_ctrl_tx_irq(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
2318
struct ice_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_txrx.c
2319
s16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ice/ice_txrx.c
2324
tx_buf = &tx_ring->tx_buf[i];
drivers/net/ethernet/intel/ice/ice_txrx.c
2325
tx_desc = ICE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ice/ice_txrx.c
2326
i -= tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
235
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/ice/ice_txrx.c
2353
i -= tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
2354
tx_buf = tx_ring->tx_buf;
drivers/net/ethernet/intel/ice/ice_txrx.c
2355
tx_desc = ICE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ice/ice_txrx.c
2360
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ice/ice_txrx.c
2365
devm_kfree(tx_ring->dev, tx_buf->raw_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
237
if (ice_is_txtime_cfg(tx_ring))
drivers/net/ethernet/intel/ice/ice_txrx.c
238
ice_free_tx_tstamp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
2380
i -= tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
2381
tx_buf = tx_ring->tx_buf;
drivers/net/ethernet/intel/ice/ice_txrx.c
2382
tx_desc = ICE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ice/ice_txrx.c
2388
i += tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
2389
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/ice/ice_txrx.c
247
void ice_free_tx_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
251
ice_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
252
devm_kfree(tx_ring->dev, tx_ring->tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
253
tx_ring->tx_buf = NULL;
drivers/net/ethernet/intel/ice/ice_txrx.c
255
if (tx_ring->desc) {
drivers/net/ethernet/intel/ice/ice_txrx.c
256
size = ALIGN(tx_ring->count * sizeof(struct ice_tx_desc),
drivers/net/ethernet/intel/ice/ice_txrx.c
258
dmam_free_coherent(tx_ring->dev, size,
drivers/net/ethernet/intel/ice/ice_txrx.c
259
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/ice/ice_txrx.c
260
tx_ring->desc = NULL;
drivers/net/ethernet/intel/ice/ice_txrx.c
271
static bool ice_clean_tx_irq(struct ice_tx_ring *tx_ring, int napi_budget)
drivers/net/ethernet/intel/ice/ice_txrx.c
275
struct ice_vsi *vsi = tx_ring->vsi;
drivers/net/ethernet/intel/ice/ice_txrx.c
276
s16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ice/ice_txrx.c
281
netdev_txq_bql_complete_prefetchw(txring_txq(tx_ring));
drivers/net/ethernet/intel/ice/ice_txrx.c
283
tx_buf = &tx_ring->tx_buf[i];
drivers/net/ethernet/intel/ice/ice_txrx.c
284
tx_desc = ICE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ice/ice_txrx.c
285
i -= tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
301
ice_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
318
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ice/ice_txrx.c
329
ice_trace(clean_tx_irq_unmap, tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
334
i -= tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
335
tx_buf = tx_ring->tx_buf;
drivers/net/ethernet/intel/ice/ice_txrx.c
336
tx_desc = ICE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ice/ice_txrx.c
341
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ice/ice_txrx.c
348
ice_trace(clean_tx_irq_unmap_eop, tx_ring, tx_desc, tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
355
i -= tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
356
tx_buf = tx_ring->tx_buf;
drivers/net/ethernet/intel/ice/ice_txrx.c
357
tx_desc = ICE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ice/ice_txrx.c
366
i += tx_ring->count;
drivers/net/ethernet/intel/ice/ice_txrx.c
367
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/ice/ice_txrx.c
369
ice_update_tx_ring_stats(tx_ring, total_pkts, total_bytes);
drivers/net/ethernet/intel/ice/ice_txrx.c
370
netdev_tx_completed_queue(txring_txq(tx_ring), total_pkts, total_bytes);
drivers/net/ethernet/intel/ice/ice_txrx.c
373
if (unlikely(total_pkts && netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/ice/ice_txrx.c
374
(ICE_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD))) {
drivers/net/ethernet/intel/ice/ice_txrx.c
379
if (netif_tx_queue_stopped(txring_txq(tx_ring)) &&
drivers/net/ethernet/intel/ice/ice_txrx.c
381
netif_tx_wake_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/ice/ice_txrx.c
382
ice_stats_inc(tx_ring->ring_stats, tx_restart_q);
drivers/net/ethernet/intel/ice/ice_txrx.c
395
static int ice_alloc_tstamp_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
40
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
404
tstamp_ring->tx_ring = tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
405
tx_ring->tstamp_ring = tstamp_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
407
tstamp_ring->count = ice_calc_ts_ring_count(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
408
tx_ring->flags |= ICE_TX_FLAGS_TXTIME;
drivers/net/ethernet/intel/ice/ice_txrx.c
418
static int ice_setup_tstamp_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
420
struct ice_tstamp_ring *tstamp_ring = tx_ring->tstamp_ring;
drivers/net/ethernet/intel/ice/ice_txrx.c
421
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/ice/ice_txrx.c
445
int ice_alloc_setup_tstamp_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
447
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/ice/ice_txrx.c
450
err = ice_alloc_tstamp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
453
tx_ring->q_index);
drivers/net/ethernet/intel/ice/ice_txrx.c
457
err = ice_setup_tstamp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
460
tx_ring->q_index);
drivers/net/ethernet/intel/ice/ice_txrx.c
461
ice_free_tx_tstamp_ring(tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.c
473
int ice_setup_tx_ring(struct ice_tx_ring *tx_ring)
drivers/net/ethernet/intel/ice/ice_txrx.c
475
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/ice/ice_txrx.c
482
WARN_ON(tx_ring->tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
483
tx_ring->tx_buf =
drivers/net/ethernet/intel/ice/ice_txrx.c
484
devm_kcalloc(dev, sizeof(*tx_ring->tx_buf), tx_ring->count,
drivers/net/ethernet/intel/ice/ice_txrx.c
486
if (!tx_ring->tx_buf)
drivers/net/ethernet/intel/ice/ice_txrx.c
49
tx_ring = vsi->tx_rings[0];
drivers/net/ethernet/intel/ice/ice_txrx.c
490
size = ALIGN(tx_ring->count * sizeof(struct ice_tx_desc),
drivers/net/ethernet/intel/ice/ice_txrx.c
492
tx_ring->desc = dmam_alloc_coherent(dev, size, &tx_ring->dma,
drivers/net/ethernet/intel/ice/ice_txrx.c
494
if (!tx_ring->desc) {
drivers/net/ethernet/intel/ice/ice_txrx.c
50
if (!tx_ring || !tx_ring->desc)
drivers/net/ethernet/intel/ice/ice_txrx.c
500
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/ice/ice_txrx.c
501
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/ice/ice_txrx.c
502
tx_ring->ring_stats->tx.prev_pkt = -1;
drivers/net/ethernet/intel/ice/ice_txrx.c
506
devm_kfree(dev, tx_ring->tx_buf);
drivers/net/ethernet/intel/ice/ice_txrx.c
507
tx_ring->tx_buf = NULL;
drivers/net/ethernet/intel/ice/ice_txrx.c
52
dev = tx_ring->dev;
drivers/net/ethernet/intel/ice/ice_txrx.c
55
for (i = ICE_FDIR_CLEAN_DELAY; ICE_DESC_UNUSED(tx_ring) < 2; i--) {
drivers/net/ethernet/intel/ice/ice_txrx.c
68
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ice/ice_txrx.c
69
first = &tx_ring->tx_buf[i];
drivers/net/ethernet/intel/ice/ice_txrx.c
70
f_desc = ICE_TX_FDIRDESC(tx_ring, i);
drivers/net/ethernet/intel/ice/ice_txrx.c
74
i = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/ice/ice_txrx.c
75
tx_desc = ICE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ice/ice_txrx.c
76
tx_buf = &tx_ring->tx_buf[i];
drivers/net/ethernet/intel/ice/ice_txrx.c
79
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/ice/ice_txrx.h
122
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.h
260
struct ice_tx_ring *tx_ring; /* Backreference to associated Tx ring */
drivers/net/ethernet/intel/ice/ice_txrx.h
413
struct ice_tx_ring *tx_ring;
drivers/net/ethernet/intel/ice/ice_txrx.h
444
for (pos = (head).tx_ring; pos; pos = pos->next)
drivers/net/ethernet/intel/ice/ice_txrx.h
460
void ice_clean_tx_ring(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.h
462
int ice_setup_tx_ring(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.h
464
int ice_alloc_setup_tstamp_ring(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.h
465
void ice_free_tx_ring(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.h
471
void ice_clean_ctrl_tx_irq(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.h
473
void ice_free_tx_tstamp_ring(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/ice/ice_txrx.h
474
void ice_free_tstamp_ring(struct ice_tx_ring *tx_ring);
drivers/net/ethernet/intel/igb/igb.h
565
struct igb_ring *tx_ring[16];
drivers/net/ethernet/intel/igb/igb.h
744
void igb_clean_tx_ring(struct igb_ring *tx_ring);
drivers/net/ethernet/intel/igb/igb.h
817
static inline struct netdev_queue *txring_txq(const struct igb_ring *tx_ring)
drivers/net/ethernet/intel/igb/igb.h
819
return netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/igb/igb.h
841
return adapter->tx_ring[r_idx];
drivers/net/ethernet/intel/igb/igb.h
869
bool igb_xmit_zc(struct igb_ring *tx_ring, struct xsk_buff_pool *xsk_pool);
drivers/net/ethernet/intel/igb/igb_ethtool.c
1564
struct igb_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1570
tx_ring->count = IGB_DEFAULT_TXD;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1571
tx_ring->dev = &adapter->pdev->dev;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1572
tx_ring->netdev = adapter->netdev;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1573
tx_ring->reg_idx = adapter->vfs_allocated_count;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1575
if (igb_setup_tx_resources(tx_ring)) {
drivers/net/ethernet/intel/igb/igb_ethtool.c
1581
igb_configure_tx_ring(adapter, tx_ring);
drivers/net/ethernet/intel/igb/igb_ethtool.c
1819
struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_ethtool.c
1829
tx_ntc = tx_ring->next_to_clean;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1853
tx_buffer_info = &tx_ring->tx_buffer_info[tx_ntc];
drivers/net/ethernet/intel/igb/igb_ethtool.c
1859
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_ethtool.c
1870
if (tx_ntc == tx_ring->count)
drivers/net/ethernet/intel/igb/igb_ethtool.c
1877
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/igb/igb_ethtool.c
1882
tx_ring->next_to_clean = tx_ntc;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1889
struct igb_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1911
if (rx_ring->count <= tx_ring->count)
drivers/net/ethernet/intel/igb/igb_ethtool.c
1912
lc = ((tx_ring->count / 64) * 2) + 1;
drivers/net/ethernet/intel/igb/igb_ethtool.c
1923
tx_ret_val = igb_xmit_frame_ring(skb, tx_ring);
drivers/net/ethernet/intel/igb/igb_ethtool.c
1936
good_cnt = igb_clean_test_rings(rx_ring, tx_ring, size);
drivers/net/ethernet/intel/igb/igb_ethtool.c
2314
ring = adapter->tx_ring[j];
drivers/net/ethernet/intel/igb/igb_ethtool.c
914
adapter->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/intel/igb/igb_ethtool.c
942
memcpy(&temp_ring[i], adapter->tx_ring[i],
drivers/net/ethernet/intel/igb/igb_ethtool.c
957
igb_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igb/igb_ethtool.c
959
memcpy(adapter->tx_ring[i], &temp_ring[i],
drivers/net/ethernet/intel/igb/igb_main.c
1010
adapter->tx_ring[q_vector->tx.ring->queue_index] = NULL;
drivers/net/ethernet/intel/igb/igb_main.c
1257
adapter->tx_ring[txr_idx] = ring;
drivers/net/ethernet/intel/igb/igb_main.c
1640
if (adapter->tx_ring[i]->cbs_enable)
drivers/net/ethernet/intel/igb/igb_main.c
1652
if (adapter->tx_ring[i]->launchtime_enable)
drivers/net/ethernet/intel/igb/igb_main.c
1679
ring = adapter->tx_ring[queue];
drivers/net/ethernet/intel/igb/igb_main.c
1853
ring = adapter->tx_ring[queue];
drivers/net/ethernet/intel/igb/igb_main.c
1868
ring = adapter->tx_ring[queue];
drivers/net/ethernet/intel/igb/igb_main.c
2960
struct igb_ring *tx_ring;
drivers/net/ethernet/intel/igb/igb_main.c
2970
tx_ring = igb_xdp_is_enabled(adapter) ?
drivers/net/ethernet/intel/igb/igb_main.c
2972
if (unlikely(!tx_ring))
drivers/net/ethernet/intel/igb/igb_main.c
2975
nq = txring_txq(tx_ring);
drivers/net/ethernet/intel/igb/igb_main.c
2979
ret = igb_xmit_xdp_ring(adapter, tx_ring, xdpf);
drivers/net/ethernet/intel/igb/igb_main.c
2990
struct igb_ring *tx_ring;
drivers/net/ethernet/intel/igb/igb_main.c
3004
tx_ring = igb_xdp_is_enabled(adapter) ?
drivers/net/ethernet/intel/igb/igb_main.c
3006
if (unlikely(!tx_ring))
drivers/net/ethernet/intel/igb/igb_main.c
3009
if (unlikely(test_bit(IGB_RING_FLAG_TX_DISABLED, &tx_ring->flags)))
drivers/net/ethernet/intel/igb/igb_main.c
3012
nq = txring_txq(tx_ring);
drivers/net/ethernet/intel/igb/igb_main.c
3022
err = igb_xmit_xdp_ring(adapter, tx_ring, xdpf);
drivers/net/ethernet/intel/igb/igb_main.c
3029
igb_xdp_ring_update_tail(tx_ring);
drivers/net/ethernet/intel/igb/igb_main.c
325
struct igb_ring *tx_ring;
drivers/net/ethernet/intel/igb/igb_main.c
360
tx_ring = adapter->tx_ring[n];
drivers/net/ethernet/intel/igb/igb_main.c
361
buffer_info = &tx_ring->tx_buffer_info[tx_ring->next_to_clean];
drivers/net/ethernet/intel/igb/igb_main.c
363
n, tx_ring->next_to_use, tx_ring->next_to_clean,
drivers/net/ethernet/intel/igb/igb_main.c
388
tx_ring = adapter->tx_ring[n];
drivers/net/ethernet/intel/igb/igb_main.c
390
pr_info("TX QUEUE INDEX = %d\n", tx_ring->queue_index);
drivers/net/ethernet/intel/igb/igb_main.c
394
for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
drivers/net/ethernet/intel/igb/igb_main.c
397
tx_desc = IGB_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igb/igb_main.c
398
buffer_info = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igb/igb_main.c
400
if (i == tx_ring->next_to_use &&
drivers/net/ethernet/intel/igb/igb_main.c
401
i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/igb/igb_main.c
403
else if (i == tx_ring->next_to_use)
drivers/net/ethernet/intel/igb/igb_main.c
405
else if (i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/igb/igb_main.c
4291
int igb_setup_tx_resources(struct igb_ring *tx_ring)
drivers/net/ethernet/intel/igb/igb_main.c
4293
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/igb/igb_main.c
4296
size = sizeof(struct igb_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
4298
tx_ring->tx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/igb/igb_main.c
4299
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/intel/igb/igb_main.c
4303
tx_ring->size = tx_ring->count * sizeof(union e1000_adv_tx_desc);
drivers/net/ethernet/intel/igb/igb_main.c
4304
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/igb/igb_main.c
4306
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/intel/igb/igb_main.c
4307
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/igb/igb_main.c
4308
if (!tx_ring->desc)
drivers/net/ethernet/intel/igb/igb_main.c
4311
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igb/igb_main.c
4312
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/igb/igb_main.c
4317
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/igb/igb_main.c
4318
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/igb/igb_main.c
4336
err = igb_setup_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igb/igb_main.c
4341
igb_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igb/igb_main.c
4427
wr32(E1000_TXDCTL(adapter->tx_ring[i]->reg_idx), 0);
drivers/net/ethernet/intel/igb/igb_main.c
4433
igb_configure_tx_ring(adapter, adapter->tx_ring[i]);
drivers/net/ethernet/intel/igb/igb_main.c
4897
void igb_free_tx_resources(struct igb_ring *tx_ring)
drivers/net/ethernet/intel/igb/igb_main.c
4899
igb_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/igb/igb_main.c
4901
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/igb/igb_main.c
4902
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/igb/igb_main.c
4905
if (!tx_ring->desc)
drivers/net/ethernet/intel/igb/igb_main.c
4908
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/igb/igb_main.c
4909
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/igb/igb_main.c
4911
tx_ring->desc = NULL;
drivers/net/ethernet/intel/igb/igb_main.c
4925
if (adapter->tx_ring[i])
drivers/net/ethernet/intel/igb/igb_main.c
4926
igb_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igb/igb_main.c
4933
void igb_clean_tx_ring(struct igb_ring *tx_ring)
drivers/net/ethernet/intel/igb/igb_main.c
4935
u16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/igb/igb_main.c
4936
struct igb_tx_buffer *tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igb/igb_main.c
4939
while (i != tx_ring->next_to_use) {
drivers/net/ethernet/intel/igb/igb_main.c
4953
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
4960
tx_desc = IGB_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igb/igb_main.c
4967
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/igb/igb_main.c
4969
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igb/igb_main.c
4970
tx_desc = IGB_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igb/igb_main.c
4975
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
4987
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/igb/igb_main.c
4989
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igb/igb_main.c
4994
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/igb/igb_main.c
4996
if (tx_ring->xsk_pool && xsk_frames)
drivers/net/ethernet/intel/igb/igb_main.c
4997
xsk_tx_completed(tx_ring->xsk_pool, xsk_frames);
drivers/net/ethernet/intel/igb/igb_main.c
5000
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igb/igb_main.c
5001
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/igb/igb_main.c
5013
if (adapter->tx_ring[i])
drivers/net/ethernet/intel/igb/igb_main.c
5014
igb_clean_tx_ring(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igb/igb_main.c
5734
struct igb_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igb/igb_main.c
5741
if (igb_desc_unused(tx_ring) + 1 < tx_ring->count) {
drivers/net/ethernet/intel/igb/igb_main.c
5750
set_bit(IGB_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags);
drivers/net/ethernet/intel/igb/igb_main.c
6010
static void igb_tx_ctxtdesc(struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_main.c
6016
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igb/igb_main.c
6019
context_desc = IGB_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/intel/igb/igb_main.c
6022
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/igb/igb_main.c
6028
if (test_bit(IGB_RING_FLAG_TX_CTX_IDX, &tx_ring->flags))
drivers/net/ethernet/intel/igb/igb_main.c
6029
mss_l4len_idx |= tx_ring->reg_idx << 4;
drivers/net/ethernet/intel/igb/igb_main.c
6038
if (tx_ring->launchtime_enable) {
drivers/net/ethernet/intel/igb/igb_main.c
6047
static int igb_tso(struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_main.c
6136
igb_tx_ctxtdesc(tx_ring, first, vlan_macip_lens,
drivers/net/ethernet/intel/igb/igb_main.c
6142
static void igb_tx_csum(struct igb_ring *tx_ring, struct igb_tx_buffer *first)
drivers/net/ethernet/intel/igb/igb_main.c
6151
!tx_ring->launchtime_enable)
drivers/net/ethernet/intel/igb/igb_main.c
6182
igb_tx_ctxtdesc(tx_ring, first, vlan_macip_lens, type_tucmd, 0);
drivers/net/ethernet/intel/igb/igb_main.c
6215
static void igb_tx_olinfo_status(struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_main.c
6222
if (test_bit(IGB_RING_FLAG_TX_CTX_IDX, &tx_ring->flags))
drivers/net/ethernet/intel/igb/igb_main.c
6223
olinfo_status |= tx_ring->reg_idx << 4;
drivers/net/ethernet/intel/igb/igb_main.c
6238
static int __igb_maybe_stop_tx(struct igb_ring *tx_ring, const u16 size)
drivers/net/ethernet/intel/igb/igb_main.c
6240
struct net_device *netdev = tx_ring->netdev;
drivers/net/ethernet/intel/igb/igb_main.c
6242
netif_stop_subqueue(netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/igb/igb_main.c
6253
if (igb_desc_unused(tx_ring) < size)
drivers/net/ethernet/intel/igb/igb_main.c
6257
netif_wake_subqueue(netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/igb/igb_main.c
6259
u64_stats_update_begin(&tx_ring->tx_syncp2);
drivers/net/ethernet/intel/igb/igb_main.c
6260
tx_ring->tx_stats.restart_queue2++;
drivers/net/ethernet/intel/igb/igb_main.c
6261
u64_stats_update_end(&tx_ring->tx_syncp2);
drivers/net/ethernet/intel/igb/igb_main.c
6266
static inline int igb_maybe_stop_tx(struct igb_ring *tx_ring, const u16 size)
drivers/net/ethernet/intel/igb/igb_main.c
6268
if (igb_desc_unused(tx_ring) >= size)
drivers/net/ethernet/intel/igb/igb_main.c
6270
return __igb_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/igb/igb_main.c
6273
static int igb_tx_map(struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_main.c
6285
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igb/igb_main.c
6287
tx_desc = IGB_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igb/igb_main.c
6289
igb_tx_olinfo_status(tx_ring, tx_desc, tx_flags, skb->len - hdr_len);
drivers/net/ethernet/intel/igb/igb_main.c
6294
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/igb/igb_main.c
6299
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/igb/igb_main.c
6314
if (i == tx_ring->count) {
drivers/net/ethernet/intel/igb/igb_main.c
6315
tx_desc = IGB_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igb/igb_main.c
6333
if (i == tx_ring->count) {
drivers/net/ethernet/intel/igb/igb_main.c
6334
tx_desc = IGB_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igb/igb_main.c
6342
dma = skb_frag_dma_map(tx_ring->dev, frag, 0,
drivers/net/ethernet/intel/igb/igb_main.c
6345
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igb/igb_main.c
6352
netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/intel/igb/igb_main.c
6372
if (i == tx_ring->count)
drivers/net/ethernet/intel/igb/igb_main.c
6375
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/igb/igb_main.c
6378
igb_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/igb/igb_main.c
6380
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more()) {
drivers/net/ethernet/intel/igb/igb_main.c
6381
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/igb/igb_main.c
6386
dev_err(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/intel/igb/igb_main.c
6387
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igb/igb_main.c
6392
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
6399
i += tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
6400
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igb/igb_main.c
6404
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
6413
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/igb/igb_main.c
6419
struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_main.c
6424
u16 count, i, index = tx_ring->next_to_use;
drivers/net/ethernet/intel/igb/igb_main.c
6425
struct igb_tx_buffer *tx_head = &tx_ring->tx_buffer_info[index];
drivers/net/ethernet/intel/igb/igb_main.c
6427
union e1000_adv_tx_desc *tx_desc = IGB_TX_DESC(tx_ring, index);
drivers/net/ethernet/intel/igb/igb_main.c
6435
if (igb_maybe_stop_tx(tx_ring, count + 3))
drivers/net/ethernet/intel/igb/igb_main.c
6447
if (test_bit(IGB_RING_FLAG_TX_CTX_IDX, &tx_ring->flags))
drivers/net/ethernet/intel/igb/igb_main.c
6448
olinfo_status |= tx_ring->reg_idx << 4;
drivers/net/ethernet/intel/igb/igb_main.c
6454
dma = dma_map_single(tx_ring->dev, data, len, DMA_TO_DEVICE);
drivers/net/ethernet/intel/igb/igb_main.c
6455
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/igb/igb_main.c
6471
if (++index == tx_ring->count)
drivers/net/ethernet/intel/igb/igb_main.c
6477
tx_buffer = &tx_ring->tx_buffer_info[index];
drivers/net/ethernet/intel/igb/igb_main.c
6478
tx_desc = IGB_TX_DESC(tx_ring, index);
drivers/net/ethernet/intel/igb/igb_main.c
6487
netdev_tx_sent_queue(txring_txq(tx_ring), tx_head->bytecount);
drivers/net/ethernet/intel/igb/igb_main.c
6496
tx_ring->next_to_use = index;
drivers/net/ethernet/intel/igb/igb_main.c
6499
igb_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/igb/igb_main.c
6501
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more())
drivers/net/ethernet/intel/igb/igb_main.c
6502
writel(index, tx_ring->tail);
drivers/net/ethernet/intel/igb/igb_main.c
6508
tx_buffer = &tx_ring->tx_buffer_info[index];
drivers/net/ethernet/intel/igb/igb_main.c
6510
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
6519
index += tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
6527
struct igb_ring *tx_ring)
drivers/net/ethernet/intel/igb/igb_main.c
6547
if (igb_maybe_stop_tx(tx_ring, count + 3)) {
drivers/net/ethernet/intel/igb/igb_main.c
6552
if (unlikely(test_bit(IGB_RING_FLAG_TX_DISABLED, &tx_ring->flags)))
drivers/net/ethernet/intel/igb/igb_main.c
6556
first = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/igb/igb_main.c
6563
struct igb_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/igb/igb_main.c
6589
tso = igb_tso(tx_ring, first, &hdr_len);
drivers/net/ethernet/intel/igb/igb_main.c
6593
igb_tx_csum(tx_ring, first);
drivers/net/ethernet/intel/igb/igb_main.c
6595
if (igb_tx_map(tx_ring, first, hdr_len))
drivers/net/ethernet/intel/igb/igb_main.c
6605
struct igb_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/igb/igb_main.c
6625
return adapter->tx_ring[r_idx];
drivers/net/ethernet/intel/igb/igb_main.c
6805
struct igb_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igb/igb_main.c
703
adapter->tx_ring[j]->reg_idx = rbase_offset + j;
drivers/net/ethernet/intel/igb/igb_main.c
7167
struct igb_ring *tx_ring,
drivers/net/ethernet/intel/igb/igb_main.c
7171
u32 txctrl = dca3_get_tag(tx_ring->dev, cpu);
drivers/net/ethernet/intel/igb/igb_main.c
7184
wr32(E1000_DCA_TXCTRL(tx_ring->reg_idx), txctrl);
drivers/net/ethernet/intel/igb/igb_main.c
8332
struct igb_ring *tx_ring = q_vector->tx.ring;
drivers/net/ethernet/intel/igb/igb_main.c
8333
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/igb/igb_main.c
8345
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igb/igb_main.c
8346
tx_desc = IGB_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igb/igb_main.c
8347
i -= tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
8381
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
8395
i -= tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
8396
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igb/igb_main.c
8397
tx_desc = IGB_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igb/igb_main.c
8402
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
8416
i -= tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
8417
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igb/igb_main.c
8418
tx_desc = IGB_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igb/igb_main.c
8428
netdev_tx_completed_queue(txring_txq(tx_ring),
drivers/net/ethernet/intel/igb/igb_main.c
8430
i += tx_ring->count;
drivers/net/ethernet/intel/igb/igb_main.c
8431
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/igb/igb_main.c
8432
u64_stats_update_begin(&tx_ring->tx_syncp);
drivers/net/ethernet/intel/igb/igb_main.c
8433
tx_ring->tx_stats.bytes += total_bytes;
drivers/net/ethernet/intel/igb/igb_main.c
8434
tx_ring->tx_stats.packets += total_packets;
drivers/net/ethernet/intel/igb/igb_main.c
8435
u64_stats_update_end(&tx_ring->tx_syncp);
drivers/net/ethernet/intel/igb/igb_main.c
8439
xsk_pool = READ_ONCE(tx_ring->xsk_pool);
drivers/net/ethernet/intel/igb/igb_main.c
8446
nq = txring_txq(tx_ring);
drivers/net/ethernet/intel/igb/igb_main.c
8450
xsk_xmit_done = igb_xmit_zc(tx_ring, xsk_pool);
drivers/net/ethernet/intel/igb/igb_main.c
8454
if (test_bit(IGB_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags)) {
drivers/net/ethernet/intel/igb/igb_main.c
8460
clear_bit(IGB_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags);
drivers/net/ethernet/intel/igb/igb_main.c
8467
dev_err(tx_ring->dev,
drivers/net/ethernet/intel/igb/igb_main.c
8479
tx_ring->queue_index,
drivers/net/ethernet/intel/igb/igb_main.c
8480
rd32(E1000_TDH(tx_ring->reg_idx)),
drivers/net/ethernet/intel/igb/igb_main.c
8481
readl(tx_ring->tail),
drivers/net/ethernet/intel/igb/igb_main.c
8482
tx_ring->next_to_use,
drivers/net/ethernet/intel/igb/igb_main.c
8483
tx_ring->next_to_clean,
drivers/net/ethernet/intel/igb/igb_main.c
8488
netif_stop_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/igb/igb_main.c
8489
tx_ring->queue_index);
drivers/net/ethernet/intel/igb/igb_main.c
8498
netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/igb/igb_main.c
8499
igb_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD)) {
drivers/net/ethernet/intel/igb/igb_main.c
8504
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/intel/igb/igb_main.c
8505
tx_ring->queue_index) &&
drivers/net/ethernet/intel/igb/igb_main.c
8507
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/igb/igb_main.c
8508
tx_ring->queue_index);
drivers/net/ethernet/intel/igb/igb_main.c
8510
u64_stats_update_begin(&tx_ring->tx_syncp);
drivers/net/ethernet/intel/igb/igb_main.c
8511
tx_ring->tx_stats.restart_queue++;
drivers/net/ethernet/intel/igb/igb_main.c
8512
u64_stats_update_end(&tx_ring->tx_syncp);
drivers/net/ethernet/intel/igb/igb_main.c
8993
struct igb_ring *tx_ring = igb_xdp_tx_queue_mapping(adapter);
drivers/net/ethernet/intel/igb/igb_main.c
8995
nq = txring_txq(tx_ring);
drivers/net/ethernet/intel/igb/igb_main.c
8997
igb_xdp_ring_update_tail(tx_ring);
drivers/net/ethernet/intel/igb/igb_xsk.c
36
struct igb_ring *tx_ring = adapter->tx_ring[qid];
drivers/net/ethernet/intel/igb/igb_xsk.c
40
set_bit(IGB_RING_FLAG_TX_DISABLED, &tx_ring->flags);
drivers/net/ethernet/intel/igb/igb_xsk.c
42
wr32(E1000_TXDCTL(tx_ring->reg_idx), 0);
drivers/net/ethernet/intel/igb/igb_xsk.c
465
bool igb_xmit_zc(struct igb_ring *tx_ring, struct xsk_buff_pool *xsk_pool)
drivers/net/ethernet/intel/igb/igb_xsk.c
467
unsigned int budget = igb_desc_unused(tx_ring);
drivers/net/ethernet/intel/igb/igb_xsk.c
475
if (!netif_carrier_ok(tx_ring->netdev))
drivers/net/ethernet/intel/igb/igb_xsk.c
478
if (test_bit(IGB_RING_FLAG_TX_DISABLED, &tx_ring->flags))
drivers/net/ethernet/intel/igb/igb_xsk.c
489
tx_buffer_info = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/igb/igb_xsk.c
496
tx_desc = IGB_TX_DESC(tx_ring, tx_ring->next_to_use);
drivers/net/ethernet/intel/igb/igb_xsk.c
50
igb_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/igb/igb_xsk.c
515
tx_ring->next_to_use++;
drivers/net/ethernet/intel/igb/igb_xsk.c
517
if (tx_ring->next_to_use == tx_ring->count)
drivers/net/ethernet/intel/igb/igb_xsk.c
518
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igb/igb_xsk.c
521
netdev_tx_sent_queue(txring_txq(tx_ring), total_bytes);
drivers/net/ethernet/intel/igb/igb_xsk.c
522
igb_xdp_ring_update_tail(tx_ring);
drivers/net/ethernet/intel/igb/igb_xsk.c
54
memset(&tx_ring->tx_stats, 0, sizeof(tx_ring->tx_stats));
drivers/net/ethernet/intel/igb/igb_xsk.c
553
ring = adapter->tx_ring[qid];
drivers/net/ethernet/intel/igb/igb_xsk.c
59
struct igb_ring *tx_ring = adapter->tx_ring[qid];
drivers/net/ethernet/intel/igb/igb_xsk.c
62
igb_configure_tx_ring(adapter, tx_ring);
drivers/net/ethernet/intel/igb/igb_xsk.c
67
clear_bit(IGB_RING_FLAG_TX_DISABLED, &tx_ring->flags);
drivers/net/ethernet/intel/igbvf/ethtool.c
185
struct igbvf_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/igbvf/ethtool.c
191
ring->tx_pending = tx_ring->count;
drivers/net/ethernet/intel/igbvf/ethtool.c
215
if ((new_tx_count == adapter->tx_ring->count) &&
drivers/net/ethernet/intel/igbvf/ethtool.c
225
adapter->tx_ring->count = new_tx_count;
drivers/net/ethernet/intel/igbvf/ethtool.c
242
if (new_tx_count != adapter->tx_ring->count) {
drivers/net/ethernet/intel/igbvf/ethtool.c
243
memcpy(temp_ring, adapter->tx_ring, sizeof(struct igbvf_ring));
drivers/net/ethernet/intel/igbvf/ethtool.c
250
igbvf_free_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/ethtool.c
252
memcpy(adapter->tx_ring, temp_ring, sizeof(struct igbvf_ring));
drivers/net/ethernet/intel/igbvf/igbvf.h
176
struct igbvf_ring *tx_ring /* One per active queue */
drivers/net/ethernet/intel/igbvf/netdev.c
1050
sprintf(adapter->tx_ring->name, "%s-tx-0", netdev->name);
drivers/net/ethernet/intel/igbvf/netdev.c
1053
memcpy(adapter->tx_ring->name, netdev->name, IFNAMSIZ);
drivers/net/ethernet/intel/igbvf/netdev.c
1058
igbvf_intr_msix_tx, 0, adapter->tx_ring->name,
drivers/net/ethernet/intel/igbvf/netdev.c
1063
adapter->tx_ring->itr_register = E1000_EITR(vector);
drivers/net/ethernet/intel/igbvf/netdev.c
1064
adapter->tx_ring->itr_val = adapter->current_itr;
drivers/net/ethernet/intel/igbvf/netdev.c
1100
adapter->tx_ring = kzalloc_obj(struct igbvf_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
1101
if (!adapter->tx_ring)
drivers/net/ethernet/intel/igbvf/netdev.c
1106
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
1286
struct igbvf_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/igbvf/netdev.c
1297
ew32(TDLEN(0), tx_ring->count * sizeof(union e1000_adv_tx_desc));
drivers/net/ethernet/intel/igbvf/netdev.c
1298
tdba = tx_ring->dma;
drivers/net/ethernet/intel/igbvf/netdev.c
1303
tx_ring->head = E1000_TDH(0);
drivers/net/ethernet/intel/igbvf/netdev.c
1304
tx_ring->tail = E1000_TDT(0);
drivers/net/ethernet/intel/igbvf/netdev.c
1599
igbvf_clean_tx_ring(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
1707
err = igbvf_setup_tx_resources(adapter, adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
1746
igbvf_free_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
1773
igbvf_free_tx_resources(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
1908
struct igbvf_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/igbvf/netdev.c
1938
tx_pending = (igbvf_desc_unused(tx_ring) + 1 <
drivers/net/ethernet/intel/igbvf/netdev.c
1939
tx_ring->count);
drivers/net/ethernet/intel/igbvf/netdev.c
1967
static void igbvf_tx_ctxtdesc(struct igbvf_ring *tx_ring, u32 vlan_macip_lens,
drivers/net/ethernet/intel/igbvf/netdev.c
1972
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igbvf/netdev.c
1974
context_desc = IGBVF_TX_CTXTDESC_ADV(*tx_ring, i);
drivers/net/ethernet/intel/igbvf/netdev.c
1975
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
1978
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/igbvf/netdev.c
1992
static int igbvf_tso(struct igbvf_ring *tx_ring,
drivers/net/ethernet/intel/igbvf/netdev.c
2061
igbvf_tx_ctxtdesc(tx_ring, vlan_macip_lens, type_tucmd, mss_l4len_idx);
drivers/net/ethernet/intel/igbvf/netdev.c
2066
static bool igbvf_tx_csum(struct igbvf_ring *tx_ring, struct sk_buff *skb,
drivers/net/ethernet/intel/igbvf/netdev.c
2103
igbvf_tx_ctxtdesc(tx_ring, vlan_macip_lens, type_tucmd, 0);
drivers/net/ethernet/intel/igbvf/netdev.c
2112
if (igbvf_desc_unused(adapter->tx_ring) >= size)
drivers/net/ethernet/intel/igbvf/netdev.c
2124
if (igbvf_desc_unused(adapter->tx_ring) < size)
drivers/net/ethernet/intel/igbvf/netdev.c
2137
struct igbvf_ring *tx_ring,
drivers/net/ethernet/intel/igbvf/netdev.c
2146
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igbvf/netdev.c
2148
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
2164
if (i == tx_ring->count)
drivers/net/ethernet/intel/igbvf/netdev.c
2170
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
2181
tx_ring->buffer_info[i].skb = skb;
drivers/net/ethernet/intel/igbvf/netdev.c
2199
i += tx_ring->count;
drivers/net/ethernet/intel/igbvf/netdev.c
2201
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
2209
struct igbvf_ring *tx_ring,
drivers/net/ethernet/intel/igbvf/netdev.c
2241
i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igbvf/netdev.c
2243
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
2244
tx_desc = IGBVF_TX_DESC_ADV(*tx_ring, i);
drivers/net/ethernet/intel/igbvf/netdev.c
2250
if (i == tx_ring->count)
drivers/net/ethernet/intel/igbvf/netdev.c
2262
tx_ring->buffer_info[first].next_to_watch = tx_desc;
drivers/net/ethernet/intel/igbvf/netdev.c
2263
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/igbvf/netdev.c
2264
writel(i, adapter->hw.hw_addr + tx_ring->tail);
drivers/net/ethernet/intel/igbvf/netdev.c
2269
struct igbvf_ring *tx_ring)
drivers/net/ethernet/intel/igbvf/netdev.c
2308
first = tx_ring->next_to_use;
drivers/net/ethernet/intel/igbvf/netdev.c
2310
tso = igbvf_tso(tx_ring, skb, tx_flags, &hdr_len);
drivers/net/ethernet/intel/igbvf/netdev.c
2318
else if (igbvf_tx_csum(tx_ring, skb, tx_flags, protocol) &&
drivers/net/ethernet/intel/igbvf/netdev.c
2325
count = igbvf_tx_map_adv(adapter, tx_ring, skb);
drivers/net/ethernet/intel/igbvf/netdev.c
2328
igbvf_tx_queue_adv(adapter, tx_ring, tx_flags, count,
drivers/net/ethernet/intel/igbvf/netdev.c
2334
tx_ring->buffer_info[first].time_stamp = 0;
drivers/net/ethernet/intel/igbvf/netdev.c
2335
tx_ring->next_to_use = first;
drivers/net/ethernet/intel/igbvf/netdev.c
2345
struct igbvf_ring *tx_ring;
drivers/net/ethernet/intel/igbvf/netdev.c
2352
tx_ring = &adapter->tx_ring[0];
drivers/net/ethernet/intel/igbvf/netdev.c
2354
return igbvf_xmit_frame_ring_adv(skb, netdev, tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
2503
igbvf_clean_tx_irq(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
2843
adapter->tx_ring->count = 1024;
drivers/net/ethernet/intel/igbvf/netdev.c
2869
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
2917
kfree(adapter->tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
417
struct igbvf_ring *tx_ring)
drivers/net/ethernet/intel/igbvf/netdev.c
422
size = sizeof(struct igbvf_buffer) * tx_ring->count;
drivers/net/ethernet/intel/igbvf/netdev.c
423
tx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/igbvf/netdev.c
424
if (!tx_ring->buffer_info)
drivers/net/ethernet/intel/igbvf/netdev.c
428
tx_ring->size = tx_ring->count * sizeof(union e1000_adv_tx_desc);
drivers/net/ethernet/intel/igbvf/netdev.c
429
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/igbvf/netdev.c
431
tx_ring->desc = dma_alloc_coherent(&pdev->dev, tx_ring->size,
drivers/net/ethernet/intel/igbvf/netdev.c
432
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/igbvf/netdev.c
433
if (!tx_ring->desc)
drivers/net/ethernet/intel/igbvf/netdev.c
436
tx_ring->adapter = adapter;
drivers/net/ethernet/intel/igbvf/netdev.c
437
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igbvf/netdev.c
438
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/igbvf/netdev.c
442
vfree(tx_ring->buffer_info);
drivers/net/ethernet/intel/igbvf/netdev.c
496
static void igbvf_clean_tx_ring(struct igbvf_ring *tx_ring)
drivers/net/ethernet/intel/igbvf/netdev.c
498
struct igbvf_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/igbvf/netdev.c
503
if (!tx_ring->buffer_info)
drivers/net/ethernet/intel/igbvf/netdev.c
507
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/intel/igbvf/netdev.c
508
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
512
size = sizeof(struct igbvf_buffer) * tx_ring->count;
drivers/net/ethernet/intel/igbvf/netdev.c
513
memset(tx_ring->buffer_info, 0, size);
drivers/net/ethernet/intel/igbvf/netdev.c
516
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/igbvf/netdev.c
518
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igbvf/netdev.c
519
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/igbvf/netdev.c
521
writel(0, adapter->hw.hw_addr + tx_ring->head);
drivers/net/ethernet/intel/igbvf/netdev.c
522
writel(0, adapter->hw.hw_addr + tx_ring->tail);
drivers/net/ethernet/intel/igbvf/netdev.c
531
void igbvf_free_tx_resources(struct igbvf_ring *tx_ring)
drivers/net/ethernet/intel/igbvf/netdev.c
533
struct pci_dev *pdev = tx_ring->adapter->pdev;
drivers/net/ethernet/intel/igbvf/netdev.c
535
igbvf_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/igbvf/netdev.c
537
vfree(tx_ring->buffer_info);
drivers/net/ethernet/intel/igbvf/netdev.c
538
tx_ring->buffer_info = NULL;
drivers/net/ethernet/intel/igbvf/netdev.c
540
dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc,
drivers/net/ethernet/intel/igbvf/netdev.c
541
tx_ring->dma);
drivers/net/ethernet/intel/igbvf/netdev.c
543
tx_ring->desc = NULL;
drivers/net/ethernet/intel/igbvf/netdev.c
717
adapter->tx_ring->itr_range =
drivers/net/ethernet/intel/igbvf/netdev.c
719
adapter->tx_ring->itr_val,
drivers/net/ethernet/intel/igbvf/netdev.c
725
adapter->tx_ring->itr_range == lowest_latency)
drivers/net/ethernet/intel/igbvf/netdev.c
726
adapter->tx_ring->itr_range = low_latency;
drivers/net/ethernet/intel/igbvf/netdev.c
728
new_itr = igbvf_range_to_itr(adapter->tx_ring->itr_range);
drivers/net/ethernet/intel/igbvf/netdev.c
730
if (new_itr != adapter->tx_ring->itr_val) {
drivers/net/ethernet/intel/igbvf/netdev.c
731
u32 current_itr = adapter->tx_ring->itr_val;
drivers/net/ethernet/intel/igbvf/netdev.c
739
adapter->tx_ring->itr_val = new_itr;
drivers/net/ethernet/intel/igbvf/netdev.c
741
adapter->tx_ring->set_itr = 1;
drivers/net/ethernet/intel/igbvf/netdev.c
772
static bool igbvf_clean_tx_irq(struct igbvf_ring *tx_ring)
drivers/net/ethernet/intel/igbvf/netdev.c
774
struct igbvf_adapter *adapter = tx_ring->adapter;
drivers/net/ethernet/intel/igbvf/netdev.c
783
i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/igbvf/netdev.c
784
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
803
tx_desc = IGBVF_TX_DESC_ADV(*tx_ring, i);
drivers/net/ethernet/intel/igbvf/netdev.c
823
if (i == tx_ring->count)
drivers/net/ethernet/intel/igbvf/netdev.c
826
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/intel/igbvf/netdev.c
830
} while (count < tx_ring->count);
drivers/net/ethernet/intel/igbvf/netdev.c
832
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/igbvf/netdev.c
835
igbvf_desc_unused(tx_ring) >= IGBVF_TX_QUEUE_WAKE)) {
drivers/net/ethernet/intel/igbvf/netdev.c
849
return count < tx_ring->count;
drivers/net/ethernet/intel/igbvf/netdev.c
872
struct igbvf_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/igbvf/netdev.c
874
if (tx_ring->set_itr) {
drivers/net/ethernet/intel/igbvf/netdev.c
875
writel(tx_ring->itr_val,
drivers/net/ethernet/intel/igbvf/netdev.c
876
adapter->hw.hw_addr + tx_ring->itr_register);
drivers/net/ethernet/intel/igbvf/netdev.c
877
adapter->tx_ring->set_itr = 0;
drivers/net/ethernet/intel/igbvf/netdev.c
886
if (!igbvf_clean_tx_irq(tx_ring))
drivers/net/ethernet/intel/igbvf/netdev.c
888
ew32(EICS, tx_ring->eims_value);
drivers/net/ethernet/intel/igbvf/netdev.c
890
ew32(EIMS, tx_ring->eims_value);
drivers/net/ethernet/intel/igbvf/netdev.c
958
adapter->tx_ring[tx_queue].eims_value = BIT(msix_vector);
drivers/net/ethernet/intel/igbvf/netdev.c
974
struct igbvf_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/intel/igbvf/netdev.c
981
adapter->eims_enable_mask |= tx_ring->eims_value;
drivers/net/ethernet/intel/igbvf/netdev.c
982
writel(tx_ring->itr_val, hw->hw_addr + tx_ring->itr_register);
drivers/net/ethernet/intel/igc/igc.h
223
struct igc_ring *tx_ring[IGC_MAX_TX_QUEUES];
drivers/net/ethernet/intel/igc/igc.h
604
struct igc_ring *tx_ring;
drivers/net/ethernet/intel/igc/igc.h
708
static inline struct netdev_queue *txring_txq(const struct igc_ring *tx_ring)
drivers/net/ethernet/intel/igc/igc.h
710
return netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_dump.c
118
struct igc_ring *tx_ring;
drivers/net/ethernet/intel/igc/igc_dump.c
138
tx_ring = adapter->tx_ring[n];
drivers/net/ethernet/intel/igc/igc_dump.c
139
buffer_info = &tx_ring->tx_buffer_info[tx_ring->next_to_clean];
drivers/net/ethernet/intel/igc/igc_dump.c
142
n, tx_ring->next_to_use, tx_ring->next_to_clean,
drivers/net/ethernet/intel/igc/igc_dump.c
167
tx_ring = adapter->tx_ring[n];
drivers/net/ethernet/intel/igc/igc_dump.c
170
tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_dump.c
174
for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
drivers/net/ethernet/intel/igc/igc_dump.c
178
tx_desc = IGC_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igc/igc_dump.c
179
buffer_info = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igc/igc_dump.c
181
if (i == tx_ring->next_to_use &&
drivers/net/ethernet/intel/igc/igc_dump.c
182
i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/igc/igc_dump.c
184
else if (i == tx_ring->next_to_use)
drivers/net/ethernet/intel/igc/igc_dump.c
186
else if (i == tx_ring->next_to_clean)
drivers/net/ethernet/intel/igc/igc_ethtool.c
621
adapter->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/intel/igc/igc_ethtool.c
649
memcpy(&temp_ring[i], adapter->tx_ring[i],
drivers/net/ethernet/intel/igc/igc_ethtool.c
664
igc_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_ethtool.c
666
memcpy(adapter->tx_ring[i], &temp_ring[i],
drivers/net/ethernet/intel/igc/igc_ethtool.c
843
ring = adapter->tx_ring[j];
drivers/net/ethernet/intel/igc/igc_main.c
1145
static void igc_tx_ctxtdesc(struct igc_ring *tx_ring,
drivers/net/ethernet/intel/igc/igc_main.c
1151
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igc/igc_main.c
1153
context_desc = IGC_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/intel/igc/igc_main.c
1156
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/igc/igc_main.c
1162
if (test_bit(IGC_RING_FLAG_TX_CTX_IDX, &tx_ring->flags))
drivers/net/ethernet/intel/igc/igc_main.c
1163
mss_l4len_idx |= tx_ring->reg_idx << 4;
drivers/net/ethernet/intel/igc/igc_main.c
1174
static void igc_tx_csum(struct igc_ring *tx_ring, struct igc_tx_buffer *first,
drivers/net/ethernet/intel/igc/igc_main.c
1184
!tx_ring->launchtime_enable)
drivers/net/ethernet/intel/igc/igc_main.c
1215
igc_tx_ctxtdesc(tx_ring, launch_time, first_flag,
drivers/net/ethernet/intel/igc/igc_main.c
1219
static int __igc_maybe_stop_tx(struct igc_ring *tx_ring, const u16 size)
drivers/net/ethernet/intel/igc/igc_main.c
1221
struct net_device *netdev = tx_ring->netdev;
drivers/net/ethernet/intel/igc/igc_main.c
1223
netif_stop_subqueue(netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_main.c
1231
if (igc_desc_unused(tx_ring) < size)
drivers/net/ethernet/intel/igc/igc_main.c
1235
netif_wake_subqueue(netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_main.c
1237
u64_stats_update_begin(&tx_ring->tx_syncp2);
drivers/net/ethernet/intel/igc/igc_main.c
1238
tx_ring->tx_stats.restart_queue2++;
drivers/net/ethernet/intel/igc/igc_main.c
1239
u64_stats_update_end(&tx_ring->tx_syncp2);
drivers/net/ethernet/intel/igc/igc_main.c
1244
static inline int igc_maybe_stop_tx(struct igc_ring *tx_ring, const u16 size)
drivers/net/ethernet/intel/igc/igc_main.c
1246
if (igc_desc_unused(tx_ring) >= size)
drivers/net/ethernet/intel/igc/igc_main.c
1248
return __igc_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/igc/igc_main.c
1292
static void igc_tx_olinfo_status(struct igc_ring *tx_ring,
drivers/net/ethernet/intel/igc/igc_main.c
1313
static int igc_tx_map(struct igc_ring *tx_ring,
drivers/net/ethernet/intel/igc/igc_main.c
1322
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/igc/igc_main.c
1328
tx_desc = IGC_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igc/igc_main.c
1330
igc_tx_olinfo_status(tx_ring, tx_desc, tx_flags, skb->len - hdr_len);
drivers/net/ethernet/intel/igc/igc_main.c
1335
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/igc/igc_main.c
1340
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/igc/igc_main.c
1355
if (i == tx_ring->count) {
drivers/net/ethernet/intel/igc/igc_main.c
1356
tx_desc = IGC_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igc/igc_main.c
1374
if (i == tx_ring->count) {
drivers/net/ethernet/intel/igc/igc_main.c
1375
tx_desc = IGC_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igc/igc_main.c
1383
dma = skb_frag_dma_map(tx_ring->dev, frag, 0,
drivers/net/ethernet/intel/igc/igc_main.c
1386
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igc/igc_main.c
1393
netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/intel/igc/igc_main.c
1413
if (i == tx_ring->count)
drivers/net/ethernet/intel/igc/igc_main.c
1416
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/igc/igc_main.c
1419
igc_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/igc/igc_main.c
1421
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more()) {
drivers/net/ethernet/intel/igc/igc_main.c
1422
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/igc/igc_main.c
1427
netdev_err(tx_ring->netdev, "TX DMA map failed\n");
drivers/net/ethernet/intel/igc/igc_main.c
1428
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igc/igc_main.c
1433
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
1436
i += tx_ring->count;
drivers/net/ethernet/intel/igc/igc_main.c
1437
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igc/igc_main.c
1441
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
1446
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/igc/igc_main.c
1451
static int igc_tso(struct igc_ring *tx_ring,
drivers/net/ethernet/intel/igc/igc_main.c
1540
igc_tx_ctxtdesc(tx_ring, launch_time, first_flag,
drivers/net/ethernet/intel/igc/igc_main.c
1566
static int igc_insert_empty_frame(struct igc_ring *tx_ring)
drivers/net/ethernet/intel/igc/igc_main.c
1573
empty_info = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/igc/igc_main.c
1577
netdev_name(tx_ring->netdev));
drivers/net/ethernet/intel/igc/igc_main.c
1585
ret = igc_init_empty_frame(tx_ring, empty_info, empty_skb);
drivers/net/ethernet/intel/igc/igc_main.c
1592
igc_tx_ctxtdesc(tx_ring, 0, false, 0, 0, 0);
drivers/net/ethernet/intel/igc/igc_main.c
1595
igc_init_tx_empty_descriptor(tx_ring, empty_skb, empty_info);
drivers/net/ethernet/intel/igc/igc_main.c
1601
struct igc_ring *tx_ring)
drivers/net/ethernet/intel/igc/igc_main.c
1603
struct igc_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/igc/igc_main.c
1626
if (igc_maybe_stop_tx(tx_ring, count + 5)) {
drivers/net/ethernet/intel/igc/igc_main.c
1631
if (!tx_ring->launchtime_enable)
drivers/net/ethernet/intel/igc/igc_main.c
1636
launch_time = igc_tx_launchtime(tx_ring, txtime, &first_flag, &insert_empty);
drivers/net/ethernet/intel/igc/igc_main.c
1647
if (igc_insert_empty_frame(tx_ring))
drivers/net/ethernet/intel/igc/igc_main.c
1653
first = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/igc/igc_main.c
1659
if (adapter->qbv_transition || tx_ring->oper_gate_closed)
drivers/net/ethernet/intel/igc/igc_main.c
1662
if (tx_ring->max_sdu > 0 && first->bytecount > tx_ring->max_sdu) {
drivers/net/ethernet/intel/igc/igc_main.c
1667
if (unlikely(test_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags) &&
drivers/net/ethernet/intel/igc/igc_main.c
1698
if (tx_ring->preemptible && skb->len < ETH_ZLEN) {
drivers/net/ethernet/intel/igc/igc_main.c
1704
tso = igc_tso(tx_ring, first, launch_time, first_flag, &hdr_len);
drivers/net/ethernet/intel/igc/igc_main.c
1708
igc_tx_csum(tx_ring, first, launch_time, first_flag);
drivers/net/ethernet/intel/igc/igc_main.c
1710
igc_tx_map(tx_ring, first, hdr_len);
drivers/net/ethernet/intel/igc/igc_main.c
1729
return adapter->tx_ring[r_idx];
drivers/net/ethernet/intel/igc/igc_main.c
194
static void igc_clean_tx_ring(struct igc_ring *tx_ring)
drivers/net/ethernet/intel/igc/igc_main.c
196
u16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/igc/igc_main.c
197
struct igc_tx_buffer *tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igc/igc_main.c
200
while (i != tx_ring->next_to_use) {
drivers/net/ethernet/intel/igc/igc_main.c
209
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
213
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
216
netdev_warn_once(tx_ring->netdev, "Unknown Tx buffer type\n");
drivers/net/ethernet/intel/igc/igc_main.c
222
tx_desc = IGC_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igc/igc_main.c
229
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/igc/igc_main.c
231
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igc/igc_main.c
232
tx_desc = IGC_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igc/igc_main.c
237
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
245
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/igc/igc_main.c
247
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igc/igc_main.c
2488
return adapter->tx_ring[index];
drivers/net/ethernet/intel/igc/igc_main.c
251
if (tx_ring->xsk_pool && xsk_frames)
drivers/net/ethernet/intel/igc/igc_main.c
252
xsk_tx_completed(tx_ring->xsk_pool, xsk_frames);
drivers/net/ethernet/intel/igc/igc_main.c
255
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/igc/igc_main.c
258
memset(tx_ring->tx_buffer_info, 0,
drivers/net/ethernet/intel/igc/igc_main.c
259
sizeof(*tx_ring->tx_buffer_info) * tx_ring->count);
drivers/net/ethernet/intel/igc/igc_main.c
262
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/intel/igc/igc_main.c
265
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igc/igc_main.c
266
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/igc/igc_main.c
269
if (test_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags)) {
drivers/net/ethernet/intel/igc/igc_main.c
270
struct igc_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/igc/igc_main.c
272
igc_ptp_clear_xsk_tx_tstamp_queue(adapter, tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_main.c
282
void igc_free_tx_resources(struct igc_ring *tx_ring)
drivers/net/ethernet/intel/igc/igc_main.c
284
igc_disable_tx_ring(tx_ring);
drivers/net/ethernet/intel/igc/igc_main.c
286
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/igc/igc_main.c
287
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/igc/igc_main.c
290
if (!tx_ring->desc)
drivers/net/ethernet/intel/igc/igc_main.c
2918
struct igc_ring *tx_ring = meta_req->tx_ring;
drivers/net/ethernet/intel/igc/igc_main.c
2926
if (test_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags)) {
drivers/net/ethernet/intel/igc/igc_main.c
2927
adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/igc/igc_main.c
293
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/igc/igc_main.c
294
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/igc/igc_main.c
2956
tstamp->xsk_queue_index = tx_ring->queue_index;
drivers/net/ethernet/intel/igc/igc_main.c
296
tx_ring->desc = NULL;
drivers/net/ethernet/intel/igc/igc_main.c
2996
struct igc_ring *tx_ring = meta_req->tx_ring;
drivers/net/ethernet/intel/igc/igc_main.c
3002
if (!tx_ring->launchtime_enable)
drivers/net/ethernet/intel/igc/igc_main.c
3005
launch_time_offset = igc_tx_launchtime(tx_ring,
drivers/net/ethernet/intel/igc/igc_main.c
3012
if (igc_insert_empty_frame(tx_ring))
drivers/net/ethernet/intel/igc/igc_main.c
3016
&tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/igc/igc_main.c
3024
igc_tx_ctxtdesc(tx_ring, launch_time_offset, first_flag, 0, 0, 0);
drivers/net/ethernet/intel/igc/igc_main.c
3081
meta_req.tx_ring = ring;
drivers/net/ethernet/intel/igc/igc_main.c
310
igc_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_main.c
3139
struct igc_ring *tx_ring = q_vector->tx.ring;
drivers/net/ethernet/intel/igc/igc_main.c
3140
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/igc/igc_main.c
3148
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/igc/igc_main.c
3149
tx_desc = IGC_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/igc/igc_main.c
3150
i -= tx_ring->count;
drivers/net/ethernet/intel/igc/igc_main.c
3191
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
3195
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
3198
netdev_warn_once(tx_ring->netdev, "Unknown Tx buffer type\n");
drivers/net/ethernet/intel/igc/igc_main.c
3208
i -= tx_ring->count;
drivers/net/ethernet/intel/igc/igc_main.c
3209
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igc/igc_main.c
3210
tx_desc = IGC_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igc/igc_main.c
3215
igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
drivers/net/ethernet/intel/igc/igc_main.c
322
if (adapter->tx_ring[i])
drivers/net/ethernet/intel/igc/igc_main.c
3223
i -= tx_ring->count;
drivers/net/ethernet/intel/igc/igc_main.c
3224
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/igc/igc_main.c
3225
tx_desc = IGC_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/igc/igc_main.c
323
igc_clean_tx_ring(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_main.c
3235
netdev_tx_completed_queue(txring_txq(tx_ring),
drivers/net/ethernet/intel/igc/igc_main.c
3238
i += tx_ring->count;
drivers/net/ethernet/intel/igc/igc_main.c
3239
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/igc/igc_main.c
3243
if (tx_ring->xsk_pool) {
drivers/net/ethernet/intel/igc/igc_main.c
3245
xsk_tx_completed(tx_ring->xsk_pool, xsk_frames);
drivers/net/ethernet/intel/igc/igc_main.c
3246
if (xsk_uses_need_wakeup(tx_ring->xsk_pool))
drivers/net/ethernet/intel/igc/igc_main.c
3247
xsk_set_tx_need_wakeup(tx_ring->xsk_pool);
drivers/net/ethernet/intel/igc/igc_main.c
3248
igc_xdp_xmit_zc(tx_ring);
drivers/net/ethernet/intel/igc/igc_main.c
3251
if (test_bit(IGC_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags)) {
drivers/net/ethernet/intel/igc/igc_main.c
3257
clear_bit(IGC_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags);
drivers/net/ethernet/intel/igc/igc_main.c
3262
(rd32(IGC_TDH(tx_ring->reg_idx)) != readl(tx_ring->tail)) &&
drivers/net/ethernet/intel/igc/igc_main.c
3263
!tx_ring->oper_gate_closed) {
drivers/net/ethernet/intel/igc/igc_main.c
3265
netdev_err(tx_ring->netdev,
drivers/net/ethernet/intel/igc/igc_main.c
3277
tx_ring->queue_index,
drivers/net/ethernet/intel/igc/igc_main.c
3278
rd32(IGC_TDH(tx_ring->reg_idx)),
drivers/net/ethernet/intel/igc/igc_main.c
3279
readl(tx_ring->tail),
drivers/net/ethernet/intel/igc/igc_main.c
3280
tx_ring->next_to_use,
drivers/net/ethernet/intel/igc/igc_main.c
3281
tx_ring->next_to_clean,
drivers/net/ethernet/intel/igc/igc_main.c
3286
netif_stop_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/igc/igc_main.c
3287
tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_main.c
3296
netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/igc/igc_main.c
3297
igc_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD)) {
drivers/net/ethernet/intel/igc/igc_main.c
3302
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/intel/igc/igc_main.c
3303
tx_ring->queue_index) &&
drivers/net/ethernet/intel/igc/igc_main.c
3305
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/igc/igc_main.c
3306
tx_ring->queue_index);
drivers/net/ethernet/intel/igc/igc_main.c
3308
u64_stats_update_begin(&tx_ring->tx_syncp);
drivers/net/ethernet/intel/igc/igc_main.c
3309
tx_ring->tx_stats.restart_queue++;
drivers/net/ethernet/intel/igc/igc_main.c
3310
u64_stats_update_end(&tx_ring->tx_syncp);
drivers/net/ethernet/intel/igc/igc_main.c
347
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
349
igc_disable_tx_ring_hw(tx_ring);
drivers/net/ethernet/intel/igc/igc_main.c
359
int igc_setup_tx_resources(struct igc_ring *tx_ring)
drivers/net/ethernet/intel/igc/igc_main.c
361
struct net_device *ndev = tx_ring->netdev;
drivers/net/ethernet/intel/igc/igc_main.c
362
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/igc/igc_main.c
365
size = sizeof(struct igc_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/igc/igc_main.c
366
tx_ring->tx_buffer_info = vzalloc(size);
drivers/net/ethernet/intel/igc/igc_main.c
367
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/intel/igc/igc_main.c
371
tx_ring->size = tx_ring->count * sizeof(union igc_adv_tx_desc);
drivers/net/ethernet/intel/igc/igc_main.c
372
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/igc/igc_main.c
374
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/intel/igc/igc_main.c
375
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/igc/igc_main.c
377
if (!tx_ring->desc)
drivers/net/ethernet/intel/igc/igc_main.c
380
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/igc/igc_main.c
381
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/igc/igc_main.c
386
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/igc/igc_main.c
403
err = igc_setup_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_main.c
407
igc_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_main.c
4407
adapter->tx_ring[q_vector->tx.ring->queue_index] = NULL;
drivers/net/ethernet/intel/igc/igc_main.c
4794
adapter->tx_ring[j]->reg_idx = j;
drivers/net/ethernet/intel/igc/igc_main.c
4919
adapter->tx_ring[txr_idx] = ring;
drivers/net/ethernet/intel/igc/igc_main.c
5199
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
5968
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
5976
if (igc_desc_unused(tx_ring) + 1 < tx_ring->count) {
drivers/net/ethernet/intel/igc/igc_main.c
5985
set_bit(IGC_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags);
drivers/net/ethernet/intel/igc/igc_main.c
6338
ring = adapter->tx_ring[queue];
drivers/net/ethernet/intel/igc/igc_main.c
6434
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
6447
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
6543
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
6571
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
6594
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
6655
ring = adapter->tx_ring[queue];
drivers/net/ethernet/intel/igc/igc_main.c
6658
if (adapter->tx_ring[i])
drivers/net/ethernet/intel/igc/igc_main.c
6659
cbs_status[i] = adapter->tx_ring[i]->cbs_enable;
drivers/net/ethernet/intel/igc/igc_main.c
6953
ring = adapter->tx_ring[queue_id];
drivers/net/ethernet/intel/igc/igc_main.c
7093
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_main.c
7095
if (tx_ring->admin_gate_closed) {
drivers/net/ethernet/intel/igc/igc_main.c
7096
tx_ring->admin_gate_closed = false;
drivers/net/ethernet/intel/igc/igc_main.c
7097
tx_ring->oper_gate_closed = true;
drivers/net/ethernet/intel/igc/igc_main.c
7099
tx_ring->oper_gate_closed = false;
drivers/net/ethernet/intel/igc/igc_main.c
776
igc_configure_tx_ring(adapter, adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_ptp.c
622
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_ptp.c
624
clear_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags);
drivers/net/ethernet/intel/igc/igc_ptp.c
648
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_ptp.c
650
set_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags);
drivers/net/ethernet/intel/igc/igc_ptp.c
785
xsk_pool = adapter->tx_ring[tstamp->xsk_queue_index]->xsk_pool;
drivers/net/ethernet/intel/igc/igc_tsn.c
166
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_tsn.c
168
tx_ring->preemptible = false;
drivers/net/ethernet/intel/igc/igc_tsn.c
199
struct igc_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_tsn.c
201
tx_ring->preemptible = !!(preemptible_queue & BIT(i));
drivers/net/ethernet/intel/igc/igc_tsn.c
210
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_tsn.c
224
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_tsn.c
380
int reg_idx = adapter->tx_ring[i]->reg_idx;
drivers/net/ethernet/intel/igc/igc_tsn.c
469
struct igc_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/igc/igc_xdp.c
101
set_bit(IGC_RING_FLAG_AF_XDP_ZC, &tx_ring->flags);
drivers/net/ethernet/intel/igc/igc_xdp.c
106
igc_enable_tx_ring(tx_ring);
drivers/net/ethernet/intel/igc/igc_xdp.c
120
struct igc_ring *rx_ring, *tx_ring;
drivers/net/ethernet/intel/igc/igc_xdp.c
136
tx_ring = adapter->tx_ring[queue_id];
drivers/net/ethernet/intel/igc/igc_xdp.c
142
igc_disable_tx_ring(tx_ring);
drivers/net/ethernet/intel/igc/igc_xdp.c
148
clear_bit(IGC_RING_FLAG_AF_XDP_ZC, &tx_ring->flags);
drivers/net/ethernet/intel/igc/igc_xdp.c
153
igc_enable_tx_ring(tx_ring);
drivers/net/ethernet/intel/igc/igc_xdp.c
31
igc_disable_tx_ring(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_xdp.c
48
igc_enable_tx_ring(adapter->tx_ring[i]);
drivers/net/ethernet/intel/igc/igc_xdp.c
61
struct igc_ring *rx_ring, *tx_ring;
drivers/net/ethernet/intel/igc/igc_xdp.c
90
tx_ring = adapter->tx_ring[queue_id];
drivers/net/ethernet/intel/igc/igc_xdp.c
96
igc_disable_tx_ring(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe.h
1025
int ixgbe_fso(struct ixgbe_ring *tx_ring, struct ixgbe_tx_buffer *first,
drivers/net/ethernet/intel/ixgbe/ixgbe.h
1101
struct ixgbe_ring *tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe.h
1114
int ixgbe_ipsec_tx(struct ixgbe_ring *tx_ring, struct ixgbe_tx_buffer *first,
drivers/net/ethernet/intel/ixgbe/ixgbe.h
1126
static inline int ixgbe_ipsec_tx(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe.h
706
struct ixgbe_ring *tx_ring[MAX_TX_QUEUES] ____cacheline_aligned_in_smp;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1229
struct ixgbe_ring *tx_ring = adapter->tx_ring[0];
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1235
ring->tx_pending = tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1270
adapter->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1301
memcpy(&temp_ring[i], adapter->tx_ring[i],
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1331
ixgbe_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1333
memcpy(adapter->tx_ring[i], &temp_ring[i],
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1432
ring = adapter->tx_ring[j];
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1919
struct ixgbe_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1927
tx_ring->count = IXGBE_DEFAULT_TXD;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1928
tx_ring->queue_index = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1929
tx_ring->dev = &adapter->pdev->dev;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1930
tx_ring->netdev = adapter->netdev;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1931
tx_ring->reg_idx = adapter->tx_ring[0]->reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1933
err = ixgbe_setup_tx_resources(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
1952
ixgbe_configure_tx_ring(adapter, tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2078
struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2086
tx_ntc = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2089
while (tx_ntc != tx_ring->next_to_use) {
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2093
tx_desc = IXGBE_TX_DESC(tx_ring, tx_ntc);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2100
tx_buffer = &tx_ring->tx_buffer_info[tx_ntc];
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2106
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2114
if (tx_ntc == tx_ring->count)
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2151
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2156
tx_ring->next_to_clean = tx_ntc;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2163
struct ixgbe_ring *tx_ring = &adapter->test_tx_ring;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2189
if (rx_ring->count <= tx_ring->count)
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2190
lc = ((tx_ring->count / 64) * 2) + 1;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2203
tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
2216
good_cnt = ixgbe_clean_test_rings(rx_ring, tx_ring, size);
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
488
int ixgbe_fso(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
501
dev_err(tx_ring->dev, "Wrong gso type %d:expecting SKB_GSO_FCOE\n",
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
527
dev_warn(tx_ring->dev, "unknown sof = 0x%x\n", sof);
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
553
dev_warn(tx_ring->dev, "unknown eof = 0x%x\n", eof);
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
592
ixgbe_tx_ctxtdesc(tx_ring, vlan_macip_lens, fcoe_sof_eof,
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
1056
int ixgbe_ipsec_tx(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
1060
struct ixgbe_adapter *adapter = ixgbe_from_netdev(tx_ring->netdev);
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
1068
netdev_err(tx_ring->netdev, "%s: no xfrm state len = %d\n",
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
1075
netdev_err(tx_ring->netdev, "%s: no xfrm_input_state() xs = %p\n",
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
1082
netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n",
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
1089
netdev_err(tx_ring->netdev, "%s: unused sa_idx=%d\n",
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1027
WRITE_ONCE(adapter->tx_ring[ring->queue_index], NULL);
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1106
if (adapter->tx_ring[i])
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1107
adapter->tx_ring[i]->ring_idx = i;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1281
void ixgbe_tx_ctxtdesc(struct ixgbe_ring *tx_ring, u32 vlan_macip_lens,
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1285
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1287
context_desc = IXGBE_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
1290
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
164
adapter->tx_ring[offset + i]->reg_idx = tx_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
167
adapter->tx_ring[offset + i]->dcb_tc = tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
234
adapter->tx_ring[i]->reg_idx = reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
240
adapter->tx_ring[i]->reg_idx = reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
263
adapter->tx_ring[i]->reg_idx = reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
285
adapter->tx_ring[0]->reg_idx = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
52
adapter->tx_ring[i]->reg_idx = reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
80
adapter->tx_ring[i]->reg_idx = reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
925
WRITE_ONCE(adapter->tx_ring[txr_idx], ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1010
struct ixgbe_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1012
tc = tx_ring->dcb_tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1014
clear_bit(__IXGBE_HANG_CHECK_ARMED, &tx_ring->state);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1083
static bool ixgbe_check_tx_hang(struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1085
u32 tx_done = ixgbe_get_tx_completed(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1086
u32 tx_done_old = tx_ring->tx_stats.tx_done_old;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1087
u32 tx_pending = ixgbe_get_tx_pending(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1089
clear_check_for_tx_hang(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1106
&tx_ring->state);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1108
tx_ring->tx_stats.tx_done_old = tx_done;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1110
clear_bit(__IXGBE_HANG_CHECK_ARMED, &tx_ring->state);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11101
struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11105
u8 reg_idx = tx_ring->reg_idx;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11130
struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11132
set_bit(__IXGBE_TX_DISABLED, &tx_ring->state);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11133
ixgbe_disable_txr_hw(adapter, tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11175
static void ixgbe_reset_txr_stats(struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11177
memset(&tx_ring->stats, 0, sizeof(tx_ring->stats));
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11178
memset(&tx_ring->tx_stats, 0, sizeof(tx_ring->tx_stats));
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11235
struct ixgbe_ring *rx_ring, *tx_ring, *xdp_ring;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11238
tx_ring = adapter->tx_ring[ring];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11246
ixgbe_disable_txr(adapter, tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11254
ixgbe_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11259
ixgbe_reset_txr_stats(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11275
struct ixgbe_ring *rx_ring, *tx_ring, *xdp_ring;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11278
tx_ring = adapter->tx_ring[ring];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11281
ixgbe_configure_tx_ring(adapter, tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11286
clear_bit(__IXGBE_TX_DISABLED, &tx_ring->state);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1170
void ixgbe_update_tx_ring_stats(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1174
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1175
tx_ring->stats.bytes += bytes;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1176
tx_ring->stats.packets += pkts;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1177
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11880
u64_stats_init(&adapter->tx_ring[i]->syncp);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1208
static void ixgbe_pf_handle_tx_hang(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1211
struct ixgbe_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1222
tx_ring->queue_index,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1223
IXGBE_READ_REG(hw, IXGBE_TDH(tx_ring->reg_idx)),
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1224
IXGBE_READ_REG(hw, IXGBE_TDT(tx_ring->reg_idx)),
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1225
tx_ring->next_to_use, next,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1226
tx_ring->tx_buffer_info[next].time_stamp, jiffies);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1228
netif_stop_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1229
tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1324
struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1330
if (!ixgbe_get_vf_idx(adapter, tx_ring->queue_index, &vf))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1350
struct ixgbe_ring *tx_ring, int napi_budget)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1357
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1363
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1364
tx_desc = IXGBE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1365
i -= tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1391
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1397
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1411
i -= tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1412
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1413
tx_desc = IXGBE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1418
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1431
i -= tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1432
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1433
tx_desc = IXGBE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1443
i += tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1444
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1445
ixgbe_update_tx_ring_stats(tx_ring, q_vector, total_packets,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1449
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1452
if (check_for_tx_hang(tx_ring) && ixgbe_check_tx_hang(tx_ring)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1454
ixgbe_handle_mdd_event(adapter, tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1456
ixgbe_pf_handle_tx_hang(tx_ring, i);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1460
adapter->tx_timeout_count + 1, tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1470
txq = netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1472
ixgbe_desc_unused(tx_ring),
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1474
!netif_carrier_ok(tx_ring->netdev) ||
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1476
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1483
struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1491
txctrl = dca3_get_tag(tx_ring->dev, cpu);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1495
reg_offset = IXGBE_DCA_TXCTRL(tx_ring->reg_idx);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1499
reg_offset = IXGBE_DCA_TXCTRL_82599(tx_ring->reg_idx);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
3527
struct ixgbe_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
4071
ixgbe_configure_tx_ring(adapter, adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
629
ring = adapter->tx_ring[n];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6434
struct ixgbe_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6483
struct ixgbe_ring *ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6587
static void ixgbe_clean_tx_ring(struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6589
u16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6590
struct ixgbe_tx_buffer *tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6592
if (tx_ring->xsk_pool) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6593
ixgbe_xsk_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6597
while (i != tx_ring->next_to_use) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6601
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6607
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6614
tx_desc = IXGBE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6621
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6623
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6624
tx_desc = IXGBE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6629
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6638
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6640
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6645
if (!ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6646
netdev_tx_reset_queue(txring_txq(tx_ring));
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6650
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6651
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6675
ixgbe_clean_tx_ring(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
680
ring = adapter->tx_ring[n];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7067
int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7069
struct device *dev = tx_ring->dev;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7074
size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7076
if (tx_ring->q_vector)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7077
ring_node = tx_ring->q_vector->numa_node;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7079
tx_ring->tx_buffer_info = vmalloc_node(size, ring_node);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7080
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7081
tx_ring->tx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7082
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7086
tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7087
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7090
tx_ring->desc = dma_alloc_coherent(dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7091
tx_ring->size,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7092
&tx_ring->dma,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7095
if (!tx_ring->desc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7096
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7097
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7098
if (!tx_ring->desc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7101
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7102
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7106
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7107
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7127
err = ixgbe_setup_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7149
ixgbe_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7261
void ixgbe_free_tx_resources(struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7263
ixgbe_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7265
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7266
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7269
if (!tx_ring->desc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7272
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7273
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7275
tx_ring->desc = NULL;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7289
if (adapter->tx_ring[i]->desc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7290
ixgbe_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7716
struct ixgbe_ring *tx_ring = READ_ONCE(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7718
if (!tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7720
restart_queue += tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7721
tx_busy += tx_ring->tx_stats.tx_busy;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7722
bytes += tx_ring->stats.bytes;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7723
packets += tx_ring->stats.packets;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7957
&(adapter->tx_ring[i]->state));
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7993
set_check_for_tx_hang(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8207
struct ixgbe_ring *tx_ring = adapter->tx_ring[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8209
if (tx_ring->next_to_use != tx_ring->next_to_clean)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8709
static int ixgbe_tso(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8809
ixgbe_tx_ctxtdesc(tx_ring, vlan_macip_lens, fceof_saidx, type_tucmd,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8815
static void ixgbe_tx_csum(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8862
ixgbe_tx_ctxtdesc(tx_ring, vlan_macip_lens, fceof_saidx, type_tucmd, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8926
static int __ixgbe_maybe_stop_tx(struct ixgbe_ring *tx_ring, u16 size)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8928
if (!netif_subqueue_try_stop(tx_ring->netdev, tx_ring->queue_index,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8929
ixgbe_desc_unused(tx_ring), size))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8932
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8936
static inline int ixgbe_maybe_stop_tx(struct ixgbe_ring *tx_ring, u16 size)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8938
if (likely(ixgbe_desc_unused(tx_ring) >= size))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8941
return __ixgbe_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8944
static int ixgbe_tx_map(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8956
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8958
tx_desc = IXGBE_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8976
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8981
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8996
if (i == tx_ring->count) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
8997
tx_desc = IXGBE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9015
if (i == tx_ring->count) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9016
tx_desc = IXGBE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9028
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9031
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9038
netdev_tx_sent_queue(txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9059
if (i == tx_ring->count)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9062
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9064
ixgbe_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9066
if (netif_xmit_stopped(txring_txq(tx_ring)) || !netdev_xmit_more()) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9067
writel(i, tx_ring->tail);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9072
dev_err(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9076
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9078
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9086
i += tx_ring->count;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9093
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9376
struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9398
if (ixgbe_maybe_stop_tx(tx_ring, count + 3)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9399
tx_ring->tx_stats.tx_busy++;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9404
first = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9479
(tx_ring->netdev->features & (NETIF_F_FSO | NETIF_F_FCOE_CRC))) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9480
tso = ixgbe_fso(tx_ring, first, &hdr_len);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9491
!ixgbe_ipsec_tx(tx_ring, first, &ipsec_tx))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9494
tso = ixgbe_tso(tx_ring, first, &hdr_len, &ipsec_tx);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9498
ixgbe_tx_csum(tx_ring, first, &ipsec_tx);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9501
if (test_bit(__IXGBE_TX_FDIR_INIT_DONE, &tx_ring->state))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9502
ixgbe_atr(tx_ring, first);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9507
if (ixgbe_tx_map(tx_ring, first, hdr_len))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9531
struct ixgbe_ring *tx_ring;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9540
tx_ring = ring ? ring : adapter->tx_ring[skb_get_queue_mapping(skb)];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9541
if (unlikely(test_bit(__IXGBE_TX_DISABLED, &tx_ring->state)))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9544
return ixgbe_xmit_frame_ring(skb, adapter, tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
971
&adapter->tx_ring[i]->state);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9724
struct ixgbe_ring *ring = READ_ONCE(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h
45
struct ixgbe_ring *tx_ring, int napi_budget);
drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h
47
void ixgbe_xsk_clean_tx_ring(struct ixgbe_ring *tx_ring);
drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h
49
void ixgbe_update_tx_ring_stats(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
448
static void ixgbe_clean_xdp_tx_buffer(struct ixgbe_ring *tx_ring,
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
452
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
459
struct ixgbe_ring *tx_ring, int napi_budget)
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
461
u16 ntc = tx_ring->next_to_clean, ntu = tx_ring->next_to_use;
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
463
struct xsk_buff_pool *pool = tx_ring->xsk_pool;
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
468
tx_bi = &tx_ring->tx_buffer_info[ntc];
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
469
tx_desc = IXGBE_TX_DESC(tx_ring, ntc);
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
479
ixgbe_clean_xdp_tx_buffer(tx_ring, tx_bi);
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
488
if (unlikely(ntc == tx_ring->count)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
490
tx_bi = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
491
tx_desc = IXGBE_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
498
tx_ring->next_to_clean = ntc;
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
499
ixgbe_update_tx_ring_stats(tx_ring, q_vector, total_packets,
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
508
return ixgbe_xmit_zc(tx_ring, q_vector->tx.work_limit);
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
542
void ixgbe_xsk_clean_tx_ring(struct ixgbe_ring *tx_ring)
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
544
u16 ntc = tx_ring->next_to_clean, ntu = tx_ring->next_to_use;
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
545
struct xsk_buff_pool *pool = tx_ring->xsk_pool;
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
550
tx_bi = &tx_ring->tx_buffer_info[ntc];
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
553
ixgbe_clean_xdp_tx_buffer(tx_ring, tx_bi);
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
560
if (ntc == tx_ring->count)
drivers/net/ethernet/intel/ixgbevf/ethtool.c
242
struct ixgbevf_ring *tx_ring = NULL, *rx_ring = NULL;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
267
adapter->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
279
tx_ring = vmalloc_array(adapter->num_tx_queues +
drivers/net/ethernet/intel/ixgbevf/ethtool.c
281
sizeof(*tx_ring));
drivers/net/ethernet/intel/ixgbevf/ethtool.c
282
if (!tx_ring) {
drivers/net/ethernet/intel/ixgbevf/ethtool.c
289
tx_ring[i] = *adapter->tx_ring[i];
drivers/net/ethernet/intel/ixgbevf/ethtool.c
290
tx_ring[i].count = new_tx_count;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
291
err = ixgbevf_setup_tx_resources(&tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
295
ixgbevf_free_tx_resources(&tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
298
vfree(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
299
tx_ring = NULL;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
307
tx_ring[i] = *adapter->xdp_ring[j];
drivers/net/ethernet/intel/ixgbevf/ethtool.c
308
tx_ring[i].count = new_tx_count;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
309
err = ixgbevf_setup_tx_resources(&tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
313
ixgbevf_free_tx_resources(&tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
316
vfree(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
317
tx_ring = NULL;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
360
if (tx_ring) {
drivers/net/ethernet/intel/ixgbevf/ethtool.c
362
ixgbevf_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
363
*adapter->tx_ring[i] = tx_ring[i];
drivers/net/ethernet/intel/ixgbevf/ethtool.c
369
*adapter->xdp_ring[j] = tx_ring[i];
drivers/net/ethernet/intel/ixgbevf/ethtool.c
373
vfree(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
374
tx_ring = NULL;
drivers/net/ethernet/intel/ixgbevf/ethtool.c
394
if (tx_ring) {
drivers/net/ethernet/intel/ixgbevf/ethtool.c
397
ixgbevf_free_tx_resources(&tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
398
vfree(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ethtool.c
453
ring = adapter->tx_ring[j];
drivers/net/ethernet/intel/ixgbevf/ipsec.c
453
int ixgbevf_ipsec_tx(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ipsec.c
457
struct ixgbevf_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/ixgbevf/ipsec.c
466
netdev_err(tx_ring->netdev, "%s: no xfrm state len = %d\n",
drivers/net/ethernet/intel/ixgbevf/ipsec.c
473
netdev_err(tx_ring->netdev, "%s: no xfrm_input_state() xs = %p\n",
drivers/net/ethernet/intel/ixgbevf/ipsec.c
480
netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n",
drivers/net/ethernet/intel/ixgbevf/ipsec.c
487
netdev_err(tx_ring->netdev, "%s: unused sa_idx=%d\n",
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
324
struct ixgbevf_ring *tx_ring[MAX_TX_QUEUES]; /* One per active queue */
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
462
int ixgbevf_ipsec_tx(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
474
static inline int ixgbevf_ipsec_tx(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
1761
ixgbevf_configure_tx_ring(adapter, adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
214
static inline bool ixgbevf_check_tx_hang(struct ixgbevf_ring *tx_ring)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
216
u32 tx_done = ixgbevf_get_tx_completed(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
217
u32 tx_done_old = tx_ring->tx_stats.tx_done_old;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
218
u32 tx_pending = ixgbevf_get_tx_pending(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
220
clear_check_for_tx_hang(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2204
adapter->tx_ring[0]->reg_idx = def_q;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
230
&tx_ring->state);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
233
clear_bit(__IXGBEVF_HANG_CHECK_ARMED, &tx_ring->state);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
236
tx_ring->tx_stats.tx_done_old = tx_done;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2435
static void ixgbevf_clean_tx_ring(struct ixgbevf_ring *tx_ring)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2437
u16 i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2438
struct ixgbevf_tx_buffer *tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2440
while (i != tx_ring->next_to_use) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2444
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2450
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2457
tx_desc = IXGBEVF_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2464
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2466
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2467
tx_desc = IXGBEVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2472
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2481
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2483
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2488
tx_ring->next_to_use = 0;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2489
tx_ring->next_to_clean = 0;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2514
ixgbevf_clean_tx_ring(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2549
u8 reg_idx = adapter->tx_ring[i]->reg_idx;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
269
struct ixgbevf_ring *tx_ring, int napi_budget)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
275
unsigned int budget = tx_ring->count / 2;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
276
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2800
adapter->tx_ring[txr_idx] = ring;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
281
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
282
tx_desc = IXGBEVF_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
283
i -= tx_ring->count;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
2888
adapter->tx_ring[ring->queue_index] = NULL;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
309
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
315
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3260
set_check_for_tx_hang(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
329
i -= tx_ring->count;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
330
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
331
tx_desc = IXGBEVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
336
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3404
void ixgbevf_free_tx_resources(struct ixgbevf_ring *tx_ring)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3406
ixgbevf_clean_tx_ring(tx_ring);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3408
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3409
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3412
if (!tx_ring->desc)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3415
dma_free_coherent(tx_ring->dev, tx_ring->size, tx_ring->desc,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3416
tx_ring->dma);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3418
tx_ring->desc = NULL;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3432
if (adapter->tx_ring[i]->desc)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3433
ixgbevf_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3445
int ixgbevf_setup_tx_resources(struct ixgbevf_ring *tx_ring)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3447
struct ixgbevf_adapter *adapter = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3450
size = sizeof(struct ixgbevf_tx_buffer) * tx_ring->count;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3451
tx_ring->tx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3452
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3455
u64_stats_init(&tx_ring->syncp);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3458
tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3459
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3461
tx_ring->desc = dma_alloc_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3462
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3463
if (!tx_ring->desc)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3469
vfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3470
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
349
i -= tx_ring->count;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3490
err = ixgbevf_setup_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
350
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
351
tx_desc = IXGBEVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3511
ixgbevf_free_tx_resources(adapter->tx_ring[i]);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
361
i += tx_ring->count;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
362
tx_ring->next_to_clean = i;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
363
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
364
tx_ring->stats.bytes += total_bytes;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
365
tx_ring->stats.packets += total_packets;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
366
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
371
if (check_for_tx_hang(tx_ring) && ixgbevf_check_tx_hang(tx_ring)) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
375
eop_desc = tx_ring->tx_buffer_info[i].next_to_watch;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3780
static void ixgbevf_tx_ctxtdesc(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3785
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3787
context_desc = IXGBEVF_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3790
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3801
static int ixgbevf_tso(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
387
ring_is_xdp(tx_ring) ? " XDP" : "",
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
388
tx_ring->queue_index,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
389
IXGBE_READ_REG(hw, IXGBE_VFTDH(tx_ring->reg_idx)),
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3892
ixgbevf_tx_ctxtdesc(tx_ring, vlan_macip_lens, fceof_saidx, type_tucmd,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3898
static void ixgbevf_tx_csum(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
390
IXGBE_READ_REG(hw, IXGBE_VFTDT(tx_ring->reg_idx)),
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
391
tx_ring->next_to_use, i,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
393
tx_ring->tx_buffer_info[i].time_stamp, jiffies);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3943
ixgbevf_tx_ctxtdesc(tx_ring, vlan_macip_lens,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
395
if (!ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
396
netif_stop_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
397
tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
3994
static void ixgbevf_tx_map(struct ixgbevf_ring *tx_ring,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4006
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4008
tx_desc = IXGBEVF_TX_DESC(tx_ring, i);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4015
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4020
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4035
if (i == tx_ring->count) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4036
tx_desc = IXGBEVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
405
if (ring_is_xdp(tx_ring))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4054
if (i == tx_ring->count) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4055
tx_desc = IXGBEVF_TX_DESC(tx_ring, 0);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4063
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4066
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
409
if (unlikely(total_packets && netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4091
if (i == tx_ring->count)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4094
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4097
ixgbevf_write_tail(tx_ring, i);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
410
(ixgbevf_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD))) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4101
dev_err(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4102
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4107
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4114
i += tx_ring->count;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4115
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4119
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4128
tx_ring->next_to_use = i;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4131
static int __ixgbevf_maybe_stop_tx(struct ixgbevf_ring *tx_ring, int size)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4133
netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4143
if (likely(ixgbevf_desc_unused(tx_ring) < size))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4147
netif_start_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4148
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4153
static int ixgbevf_maybe_stop_tx(struct ixgbevf_ring *tx_ring, int size)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4155
if (likely(ixgbevf_desc_unused(tx_ring) >= size))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4157
return __ixgbevf_maybe_stop_tx(tx_ring, size);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
416
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4161
struct ixgbevf_ring *tx_ring)
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
417
tx_ring->queue_index) &&
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
419
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4194
if (ixgbevf_maybe_stop_tx(tx_ring, count + 3)) {
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4195
tx_ring->tx_stats.tx_busy++;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
420
tx_ring->queue_index);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4200
first = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
421
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4216
if (xfrm_offload(skb) && !ixgbevf_ipsec_tx(tx_ring, first, &ipsec_tx))
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4219
tso = ixgbevf_tso(tx_ring, first, &hdr_len, &ipsec_tx);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4223
ixgbevf_tx_csum(tx_ring, first, &ipsec_tx);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4225
ixgbevf_tx_map(tx_ring, first, hdr_len);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4227
ixgbevf_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4241
struct ixgbevf_ring *tx_ring;
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4257
tx_ring = adapter->tx_ring[skb->queue_mapping];
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4258
return ixgbevf_xmit_frame_ring(skb, tx_ring);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
4425
ring = adapter->tx_ring[i];
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
494
struct prestera_tx_ring *tx_ring;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
500
tx_ring = &sdma->tx_ring;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
503
struct prestera_sdma_buf *buf = &tx_ring->bufs[b];
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
525
struct prestera_tx_ring *tx_ring = &sdma->tx_ring;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
532
tx_ring->bufs = kmalloc_objs(*head, bnum);
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
533
if (!tx_ring->bufs)
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
536
tail = &tx_ring->bufs[bnum - 1];
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
537
head = &tx_ring->bufs[0];
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
541
tx_ring->max_burst = PRESTERA_SDMA_TX_MAX_BURST;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
542
tx_ring->burst = tx_ring->max_burst;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
543
tx_ring->next_tx = 0;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
575
struct prestera_tx_ring *ring = &sdma->tx_ring;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
702
struct prestera_tx_ring *tx_ring)
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
704
int tx_wait_num = PRESTERA_SDMA_WAIT_MUL * tx_ring->max_burst;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
727
struct prestera_tx_ring *tx_ring;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
733
tx_ring = &sdma->tx_ring;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
735
buf = &tx_ring->bufs[tx_ring->next_tx];
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
753
if (tx_ring->burst) {
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
754
tx_ring->burst--;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
756
tx_ring->burst = tx_ring->max_burst;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
758
err = prestera_sdma_tx_wait(sdma, tx_ring);
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
763
tx_ring->next_tx = (tx_ring->next_tx + 1) % PRESTERA_SDMA_TX_DESC_PER_Q;
drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
94
struct prestera_tx_ring tx_ring;
drivers/net/ethernet/marvell/skge.c
2553
tx_size = skge->tx_ring.count * sizeof(struct skge_tx_desc);
drivers/net/ethernet/marvell/skge.c
2576
err = skge_ring_alloc(&skge->tx_ring, skge->mem + rx_size,
drivers/net/ethernet/marvell/skge.c
2607
BUG_ON(skge->tx_ring.to_use != skge->tx_ring.to_clean);
drivers/net/ethernet/marvell/skge.c
2609
skge_qset(skge, txqaddr[port], skge->tx_ring.to_use);
drivers/net/ethernet/marvell/skge.c
2629
kfree(skge->tx_ring.start);
drivers/net/ethernet/marvell/skge.c
2724
kfree(skge->tx_ring.start);
drivers/net/ethernet/marvell/skge.c
2752
if (unlikely(skge_avail(&skge->tx_ring) < skb_shinfo(skb)->nr_frags + 1))
drivers/net/ethernet/marvell/skge.c
2755
e = skge->tx_ring.to_use;
drivers/net/ethernet/marvell/skge.c
2827
e - skge->tx_ring.start, skb->len);
drivers/net/ethernet/marvell/skge.c
2829
skge->tx_ring.to_use = e->next;
drivers/net/ethernet/marvell/skge.c
2832
if (skge_avail(&skge->tx_ring) <= TX_LOW_WATER) {
drivers/net/ethernet/marvell/skge.c
2840
e = skge->tx_ring.to_use;
drivers/net/ethernet/marvell/skge.c
2876
for (e = skge->tx_ring.to_clean; e != skge->tx_ring.to_use; e = e->next) {
drivers/net/ethernet/marvell/skge.c
2887
skge->tx_ring.to_clean = e;
drivers/net/ethernet/marvell/skge.c
3152
struct skge_ring *ring = &skge->tx_ring;
drivers/net/ethernet/marvell/skge.c
3169
e - skge->tx_ring.start);
drivers/net/ethernet/marvell/skge.c
3178
skge->tx_ring.to_clean = e;
drivers/net/ethernet/marvell/skge.c
3184
skge_avail(&skge->tx_ring) > TX_LOW_WATER)) {
drivers/net/ethernet/marvell/skge.c
3187
skge_avail(&skge->tx_ring) > TX_LOW_WATER)) {
drivers/net/ethernet/marvell/skge.c
3704
seq_printf(seq, "Tx Ring: (%d)\n", skge_avail(&skge->tx_ring));
drivers/net/ethernet/marvell/skge.c
3705
for (e = skge->tx_ring.to_clean; e != skge->tx_ring.to_use; e = e->next) {
drivers/net/ethernet/marvell/skge.c
3835
skge->tx_ring.count = DEFAULT_TX_RING_SIZE;
drivers/net/ethernet/marvell/skge.c
502
p->tx_pending = skge->tx_ring.count;
drivers/net/ethernet/marvell/skge.c
518
skge->tx_ring.count = p->tx_pending;
drivers/net/ethernet/marvell/skge.h
2451
struct skge_ring tx_ring;
drivers/net/ethernet/marvell/sky2.c
1604
sky2->tx_ring = kzalloc_objs(struct tx_ring_info, sky2->tx_ring_size);
drivers/net/ethernet/marvell/sky2.c
1605
if (!sky2->tx_ring)
drivers/net/ethernet/marvell/sky2.c
1639
kfree(sky2->tx_ring);
drivers/net/ethernet/marvell/sky2.c
1642
sky2->tx_ring = NULL;
drivers/net/ethernet/marvell/sky2.c
1921
re = sky2->tx_ring + slot;
drivers/net/ethernet/marvell/sky2.c
1950
re = sky2->tx_ring + slot;
drivers/net/ethernet/marvell/sky2.c
1977
re = sky2->tx_ring + i;
drivers/net/ethernet/marvell/sky2.c
2009
struct tx_ring_info *re = sky2->tx_ring + idx;
drivers/net/ethernet/marvell/sky2.h
2221
struct tx_ring_info *tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
1759
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
1938
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
1975
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
2451
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
2500
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
2537
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
2639
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.c
2744
struct mtk_tx_ring *ring = &eth->tx_ring;
drivers/net/ethernet/mediatek/mtk_eth_soc.h
1312
struct mtk_tx_ring tx_ring;
drivers/net/ethernet/mediatek/mtk_star_emac.c
1081
if (likely(mtk_star_tx_ring_avail(&priv->tx_ring) < size))
drivers/net/ethernet/mediatek/mtk_star_emac.c
1091
if (likely(mtk_star_tx_ring_avail(&priv->tx_ring) >= size))
drivers/net/ethernet/mediatek/mtk_star_emac.c
1101
struct mtk_star_ring *ring = &priv->tx_ring;
drivers/net/ethernet/mediatek/mtk_star_emac.c
1142
struct mtk_star_ring *ring = &priv->tx_ring;
drivers/net/ethernet/mediatek/mtk_star_emac.c
1162
struct mtk_star_ring *ring = &priv->tx_ring;
drivers/net/ethernet/mediatek/mtk_star_emac.c
263
struct mtk_star_ring tx_ring;
drivers/net/ethernet/mediatek/mtk_star_emac.c
511
mtk_star_ring_init(&priv->tx_ring, priv->descs_base);
drivers/net/ethernet/mediatek/mtk_star_emac.c
754
struct mtk_star_ring *ring = &priv->tx_ring;
drivers/net/ethernet/mediatek/mtk_wed.c
1730
for (i = 0; i < ARRAY_SIZE(dev->tx_ring); i++) {
drivers/net/ethernet/mediatek/mtk_wed.c
1731
if (!dev->tx_ring[i].desc)
drivers/net/ethernet/mediatek/mtk_wed.c
1734
mtk_wed_ring_reset(&dev->tx_ring[i], MTK_WED_TX_RING_SIZE,
drivers/net/ethernet/mediatek/mtk_wed.c
2475
struct mtk_wed_ring *ring = &dev->tx_ring[idx];
drivers/net/ethernet/mediatek/mtk_wed.c
2489
if (WARN_ON(idx >= ARRAY_SIZE(dev->tx_ring)))
drivers/net/ethernet/mediatek/mtk_wed.c
961
for (i = 0; i < ARRAY_SIZE(dev->tx_ring); i++)
drivers/net/ethernet/mediatek/mtk_wed.c
962
mtk_wed_free_ring(dev, &dev->tx_ring[i]);
drivers/net/ethernet/mediatek/mtk_wed.h
116
if (!dev->tx_ring[ring].wpdma)
drivers/net/ethernet/mediatek/mtk_wed.h
119
return readl(dev->tx_ring[ring].wpdma + reg);
drivers/net/ethernet/mediatek/mtk_wed.h
125
if (!dev->tx_ring[ring].wpdma)
drivers/net/ethernet/mediatek/mtk_wed.h
128
writel(val, dev->tx_ring[ring].wpdma + reg);
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
1158
tx_size == priv->tx_ring[TX][0]->size)
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
1205
param->tx_pending = priv->tx_ring[TX][0]->size;
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
1943
priv->tx_ring[t][i]->bf_alloced;
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
1957
priv->tx_ring[t][i]->bf_enabled =
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
426
data[index++] = priv->tx_ring[TX][i]->packets;
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
427
data[index++] = priv->tx_ring[TX][i]->bytes;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1377
struct mlx4_en_tx_ring *tx_ring = priv->tx_ring[TX][txqueue];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1383
txqueue, tx_ring->qpn, tx_ring->sp_cqn,
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1384
tx_ring->cons, tx_ring->prod);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1620
struct mlx4_en_tx_ring *tx_ring = priv->tx_ring[TX_XDP][tx_ring_idx];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1623
tx_ring->free_tx_desc = mlx4_en_recycle_tx_desc;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1624
tx_ring->recycle_ring = priv->rx_ring[rr_index];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1634
struct mlx4_en_tx_ring *tx_ring;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1745
tx_ring = priv->tx_ring[t][i];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1746
err = mlx4_en_activate_tx_ring(priv, tx_ring,
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1754
clear_bit(MLX4_EN_TX_RING_STATE_RECOVERING, &tx_ring->state);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1756
tx_ring->tx_queue = netdev_get_tx_queue(dev, i);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1757
tx_ring->recycle_ring = NULL;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1763
mlx4_en_init_tx_xdp_ring_descs(priv, tx_ring);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1769
for (j = 0; j < tx_ring->buf_size; j += STAMP_STRIDE)
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1770
*((u32 *)(tx_ring->buf + j)) = 0xffffffff;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1864
mlx4_en_deactivate_tx_ring(priv, priv->tx_ring[t][i]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1986
mlx4_en_deactivate_tx_ring(priv, priv->tx_ring[t][i]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
1994
mlx4_en_free_tx_buf(dev, priv->tx_ring[t][i]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2043
struct mlx4_en_tx_ring **tx_ring;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2060
tx_ring = priv->tx_ring[TX];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2062
tx_ring[i]->bytes = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2063
tx_ring[i]->packets = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2064
tx_ring[i]->tx_csum = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2065
tx_ring[i]->tx_dropped = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2066
tx_ring[i]->queue_stopped = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2067
tx_ring[i]->wake_queue = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2068
tx_ring[i]->tso_packets = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2069
tx_ring[i]->xmit_more = 0;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2136
if (priv->tx_ring[t] && priv->tx_ring[t][i])
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2138
&priv->tx_ring[t][i]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2142
kfree(priv->tx_ring[t]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2170
if (mlx4_en_create_tx_ring(priv, &priv->tx_ring[t][i],
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2209
if (priv->tx_ring[t][i])
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2211
&priv->tx_ring[t][i]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2243
dst->tx_ring[t] = kzalloc_objs(struct mlx4_en_tx_ring *,
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2245
if (!dst->tx_ring[t])
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2250
kfree(dst->tx_ring[t]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2259
kfree(dst->tx_ring[t]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2277
dst->tx_ring[t] = src->tx_ring[t];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2305
kfree(tmp->tx_ring[t]);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2692
struct mlx4_en_tx_ring *tx_ring = priv->tx_ring[TX][queue_index];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2711
err = mlx4_update_qp(priv->mdev->dev, tx_ring->qpn, MLX4_UPDATE_QP_RATE_LIMIT,
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
3121
ring = priv->tx_ring[TX][i];
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
3217
priv->tx_ring[t] = kzalloc_objs(struct mlx4_en_tx_ring *,
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
3219
if (!priv->tx_ring[t]) {
drivers/net/ethernet/mellanox/mlx4/en_port.c
174
const struct mlx4_en_tx_ring *ring = priv->tx_ring[TX][i];
drivers/net/ethernet/mellanox/mlx4/en_port.c
272
const struct mlx4_en_tx_ring *ring = priv->tx_ring[TX][i];
drivers/net/ethernet/mellanox/mlx4/en_rx.c
945
mlx4_en_xmit_doorbell(priv->tx_ring[TX_XDP][cq_ring]);
drivers/net/ethernet/mellanox/mlx4/en_tx.c
1157
ring = priv->tx_ring[TX_XDP][tx_ind];
drivers/net/ethernet/mellanox/mlx4/en_tx.c
429
struct mlx4_en_tx_ring *ring = priv->tx_ring[cq->type][cq->ring];
drivers/net/ethernet/mellanox/mlx4/en_tx.c
890
ring = priv->tx_ring[TX][tx_ind];
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
587
struct mlx4_en_tx_ring **tx_ring[MLX4_EN_NUM_TX_TYPES];
drivers/net/ethernet/mscc/ocelot_fdma.c
484
struct ocelot_fdma_tx_ring *tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
495
tx_ring = &fdma->tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
501
ntc = tx_ring->next_to_clean;
drivers/net/ethernet/mscc/ocelot_fdma.c
502
dcb = &tx_ring->dcbs[ntc];
drivers/net/ethernet/mscc/ocelot_fdma.c
506
buf = &tx_ring->bufs[ntc];
drivers/net/ethernet/mscc/ocelot_fdma.c
514
tx_ring->next_to_clean = ocelot_fdma_idx_next(ntc,
drivers/net/ethernet/mscc/ocelot_fdma.c
542
new_null_llp_idx = ocelot_fdma_idx_prev(tx_ring->next_to_use,
drivers/net/ethernet/mscc/ocelot_fdma.c
544
dcb = &tx_ring->dcbs[new_null_llp_idx];
drivers/net/ethernet/mscc/ocelot_fdma.c
547
dma = ocelot_fdma_idx_dma(tx_ring->dcbs_dma, tx_ring->next_to_clean);
drivers/net/ethernet/mscc/ocelot_fdma.c
610
struct ocelot_fdma_tx_ring *tx_ring = &fdma->tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
616
dcb = &tx_ring->dcbs[tx_ring->next_to_use];
drivers/net/ethernet/mscc/ocelot_fdma.c
617
tx_buf = &tx_ring->bufs[tx_ring->next_to_use];
drivers/net/ethernet/mscc/ocelot_fdma.c
623
next_idx = ocelot_fdma_idx_next(tx_ring->next_to_use,
drivers/net/ethernet/mscc/ocelot_fdma.c
629
dma = ocelot_fdma_idx_dma(tx_ring->dcbs_dma,
drivers/net/ethernet/mscc/ocelot_fdma.c
630
tx_ring->next_to_use);
drivers/net/ethernet/mscc/ocelot_fdma.c
634
dcb->llp = ocelot_fdma_idx_dma(tx_ring->dcbs_dma, next_idx);
drivers/net/ethernet/mscc/ocelot_fdma.c
637
tx_ring->next_to_use = next_idx;
drivers/net/ethernet/mscc/ocelot_fdma.c
679
spin_lock(&fdma->tx_ring.xmit_lock);
drivers/net/ethernet/mscc/ocelot_fdma.c
69
struct ocelot_fdma_tx_ring *tx_ring = &fdma->tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
693
spin_unlock(&fdma->tx_ring.xmit_lock);
drivers/net/ethernet/mscc/ocelot_fdma.c
71
if (tx_ring->next_to_use >= tx_ring->next_to_clean)
drivers/net/ethernet/mscc/ocelot_fdma.c
724
struct ocelot_fdma_tx_ring *tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
729
tx_ring = &fdma->tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
73
(tx_ring->next_to_use - tx_ring->next_to_clean) - 1;
drivers/net/ethernet/mscc/ocelot_fdma.c
730
idx = tx_ring->next_to_clean;
drivers/net/ethernet/mscc/ocelot_fdma.c
732
while (idx != tx_ring->next_to_use) {
drivers/net/ethernet/mscc/ocelot_fdma.c
733
txb = &tx_ring->bufs[idx];
drivers/net/ethernet/mscc/ocelot_fdma.c
75
return tx_ring->next_to_clean - tx_ring->next_to_use - 1;
drivers/net/ethernet/mscc/ocelot_fdma.c
767
fdma->tx_ring.dcbs = dcbs;
drivers/net/ethernet/mscc/ocelot_fdma.c
768
fdma->tx_ring.dcbs_dma = dcbs_dma;
drivers/net/ethernet/mscc/ocelot_fdma.c
769
spin_lock_init(&fdma->tx_ring.xmit_lock);
drivers/net/ethernet/mscc/ocelot_fdma.c
80
struct ocelot_fdma_tx_ring *tx_ring = &fdma->tx_ring;
drivers/net/ethernet/mscc/ocelot_fdma.c
82
return tx_ring->next_to_clean == tx_ring->next_to_use;
drivers/net/ethernet/mscc/ocelot_fdma.h
151
struct ocelot_fdma_tx_ring tx_ring;
drivers/net/ethernet/natsemi/natsemi.c
1864
printk(KERN_DEBUG " Tx ring at %p:\n", np->tx_ring);
drivers/net/ethernet/natsemi/natsemi.c
1867
i, np->tx_ring[i].next_desc,
drivers/net/ethernet/natsemi/natsemi.c
1868
np->tx_ring[i].cmd_status,
drivers/net/ethernet/natsemi/natsemi.c
1869
np->tx_ring[i].addr);
drivers/net/ethernet/natsemi/natsemi.c
1921
np->tx_ring = &np->rx_ring[RX_RING_SIZE];
drivers/net/ethernet/natsemi/natsemi.c
1977
np->tx_ring[i].next_desc = cpu_to_le32(np->ring_dma
drivers/net/ethernet/natsemi/natsemi.c
1980
np->tx_ring[i].cmd_status = 0;
drivers/net/ethernet/natsemi/natsemi.c
2081
np->tx_ring[i].cmd_status = 0;
drivers/net/ethernet/natsemi/natsemi.c
2109
np->tx_ring[entry].addr = cpu_to_le32(np->tx_dma[entry]);
drivers/net/ethernet/natsemi/natsemi.c
2114
np->tx_ring[entry].cmd_status = cpu_to_le32(DescOwn | skb->len);
drivers/net/ethernet/natsemi/natsemi.c
2145
if (np->tx_ring[entry].cmd_status & cpu_to_le32(DescOwn))
drivers/net/ethernet/natsemi/natsemi.c
2151
le32_to_cpu(np->tx_ring[entry].cmd_status));
drivers/net/ethernet/natsemi/natsemi.c
2152
if (np->tx_ring[entry].cmd_status & cpu_to_le32(DescPktOK)) {
drivers/net/ethernet/natsemi/natsemi.c
2157
le32_to_cpu(np->tx_ring[entry].cmd_status);
drivers/net/ethernet/natsemi/natsemi.c
542
struct netdev_desc *tx_ring;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1029
tx_ring,
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1137
if (tx_ring->wr_ptr_add)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1138
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1139
else if (unlikely(tx_ring->wr_p != tx_ring->rd_p) &&
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1141
if (!nfp_nfd3_xdp_complete(tx_ring))
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1161
if (r_vec->tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1162
nfp_nfd3_tx_complete(r_vec->tx_ring, budget);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1181
if (r_vec->nfp_net->tx_coalesce_adapt_on && r_vec->tx_ring) {
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1203
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1211
tx_ring = r_vec->tx_ring;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1218
if (unlikely(nfp_net_tx_full(tx_ring, 1))) {
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1245
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1248
txbuf = &tx_ring->txbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1256
txd = &tx_ring->txds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1266
tx_ring->wr_p++;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1267
tx_ring->wr_ptr_add++;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1268
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
1402
nfp_nfd3_tx_complete(r_vec->tx_ring, 0);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
259
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
274
tx_ring = &dp->tx_rings[qidx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
275
r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
279
if (unlikely(nfp_net_tx_full(tx_ring, nr_frags + 1))) {
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
281
qidx, tx_ring->wr_p, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
284
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
293
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
307
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
31
static int nfp_nfd3_tx_ring_should_wake(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
310
txbuf = &tx_ring->txbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
318
txd = &tx_ring->txds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
33
return !nfp_net_tx_full(tx_ring, MAX_SKB_FRAGS * 4);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
355
wr_idx = D_IDX(tx_ring, wr_idx + 1);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
356
tx_ring->txbufs[wr_idx].skb = skb;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
357
tx_ring->txbufs[wr_idx].dma_addr = dma_addr;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
358
tx_ring->txbufs[wr_idx].fidx = f;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
36
static int nfp_nfd3_tx_ring_should_stop(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
360
txd = &tx_ring->txds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
375
nd_q = netdev_get_tx_queue(dp->netdev, tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
377
tx_ring->wr_p += nr_frags + 1;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
378
if (nfp_nfd3_tx_ring_should_stop(tx_ring))
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
379
nfp_nfd3_tx_ring_stop(nd_q, tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
38
return nfp_net_tx_full(tx_ring, MAX_SKB_FRAGS + 1);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
381
tx_ring->wr_ptr_add += nr_frags + 1;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
383
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
390
dma_unmap_page(dp->dev, tx_ring->txbufs[wr_idx].dma_addr,
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
392
tx_ring->txbufs[wr_idx].skb = NULL;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
393
tx_ring->txbufs[wr_idx].dma_addr = 0;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
394
tx_ring->txbufs[wr_idx].fidx = -2;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
397
wr_idx += tx_ring->cnt;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
399
dma_unmap_single(dp->dev, tx_ring->txbufs[wr_idx].dma_addr,
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
401
tx_ring->txbufs[wr_idx].skb = NULL;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
402
tx_ring->txbufs[wr_idx].dma_addr = 0;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
403
tx_ring->txbufs[wr_idx].fidx = -2;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
407
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
421
void nfp_nfd3_tx_complete(struct nfp_net_tx_ring *tx_ring, int budget)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
423
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
430
if (tx_ring->wr_p == tx_ring->rd_p)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
434
qcp_rd_p = nfp_net_read_tx_cmpl(tx_ring, dp);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
436
if (qcp_rd_p == tx_ring->qcp_rd_p)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
439
todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
448
idx = D_IDX(tx_ring, tx_ring->rd_p++);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
449
tx_buf = &tx_ring->txbufs[idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
481
tx_ring->qcp_rd_p = qcp_rd_p;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
491
nd_q = netdev_get_tx_queue(dp->netdev, tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
493
if (nfp_nfd3_tx_ring_should_wake(tx_ring)) {
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
501
WARN_ONCE(tx_ring->wr_p - tx_ring->rd_p > tx_ring->cnt,
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
503
tx_ring->rd_p, tx_ring->wr_p, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
506
static bool nfp_nfd3_xdp_complete(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
508
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
516
qcp_rd_p = nfp_net_read_tx_cmpl(tx_ring, dp);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
518
if (qcp_rd_p == tx_ring->qcp_rd_p)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
52
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
521
todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
526
tx_ring->qcp_rd_p = D_IDX(tx_ring, tx_ring->qcp_rd_p + todo);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
530
idx = D_IDX(tx_ring, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
531
tx_ring->rd_p++;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
533
done_bytes += tx_ring->txbufs[idx].real_len;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
541
WARN_ONCE(tx_ring->wr_p - tx_ring->rd_p > tx_ring->cnt,
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
543
tx_ring->rd_p, tx_ring->wr_p, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
58
if (unlikely(nfp_nfd3_tx_ring_should_wake(tx_ring)))
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
837
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
850
if (unlikely(nfp_net_tx_full(tx_ring, 1))) {
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
852
nfp_nfd3_xdp_complete(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
856
if (unlikely(nfp_net_tx_full(tx_ring, 1))) {
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
863
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
866
txbuf = &tx_ring->txbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
880
txd = &tx_ring->txds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
890
tx_ring->wr_p++;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
891
tx_ring->wr_ptr_add++;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
910
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfd3/dp.c
922
tx_ring = r_vec->xdp_ring;
drivers/net/ethernet/netronome/nfp/nfd3/nfd3.h
94
void nfp_nfd3_tx_complete(struct nfp_net_tx_ring *tx_ring, int budget);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
101
static void nfp_nfd3_tx_ring_free(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
103
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
106
kvfree(tx_ring->txbufs);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
108
if (tx_ring->txds)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
109
dma_free_coherent(dp->dev, tx_ring->size,
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
11
static void nfp_nfd3_xsk_tx_bufs_free(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
110
tx_ring->txds, tx_ring->dma);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
112
tx_ring->cnt = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
113
tx_ring->txbufs = NULL;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
114
tx_ring->txds = NULL;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
115
tx_ring->dma = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
116
tx_ring->size = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
127
nfp_nfd3_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
129
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
131
tx_ring->cnt = dp->txd_cnt;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
133
tx_ring->size = array_size(tx_ring->cnt, sizeof(*tx_ring->txds));
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
134
tx_ring->txds = dma_alloc_coherent(dp->dev, tx_ring->size,
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
135
&tx_ring->dma,
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
137
if (!tx_ring->txds) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
139
tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
143
tx_ring->txbufs = kvzalloc_objs(*tx_ring->txbufs, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
144
if (!tx_ring->txbufs)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
147
if (!tx_ring->is_xdp && dp->netdev)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
149
tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
154
nfp_nfd3_tx_ring_free(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
16
while (tx_ring->rd_p != tx_ring->wr_p) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
160
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
164
if (!tx_ring->is_xdp)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
167
for (i = 0; i < tx_ring->cnt; i++) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
168
if (!tx_ring->txbufs[i].frag)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
17
idx = D_IDX(tx_ring, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
171
nfp_net_dma_unmap_rx(dp, tx_ring->txbufs[i].dma_addr);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
172
__free_page(virt_to_page(tx_ring->txbufs[i].frag));
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
178
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
18
txbuf = &tx_ring->txbufs[idx];
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
180
struct nfp_nfd3_tx_buf *txbufs = tx_ring->txbufs;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
183
if (!tx_ring->is_xdp)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
186
for (i = 0; i < tx_ring->cnt; i++) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
189
nfp_nfd3_tx_ring_bufs_free(dp, tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
200
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
204
u32 txd_cnt = tx_ring->cnt;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
211
txd = &tx_ring->txds[i];
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
216
if (!tx_ring->is_xdp) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
217
skb = READ_ONCE(tx_ring->txbufs[i].skb);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
22
tx_ring->qcp_rd_p++;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
222
xdp = READ_ONCE(tx_ring->txbufs[i].xdp);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
227
if (tx_ring->txbufs[i].dma_addr)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
229
&tx_ring->txbufs[i].dma_addr);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
23
tx_ring->rd_p++;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
231
if (i == tx_ring->rd_p % txd_cnt)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
233
if (i == tx_ring->wr_p % txd_cnt)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
25
if (tx_ring->r_vec->xsk_pool) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
29
xsk_tx_completed(tx_ring->r_vec->xsk_pool, 1);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
42
nfp_nfd3_tx_ring_reset(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
47
while (!tx_ring->is_xdp && tx_ring->rd_p != tx_ring->wr_p) {
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
52
idx = D_IDX(tx_ring, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
53
tx_buf = &tx_ring->txbufs[idx];
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
55
skb = tx_ring->txbufs[idx].skb;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
77
tx_ring->qcp_rd_p++;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
78
tx_ring->rd_p++;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
81
if (tx_ring->is_xdp)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
82
nfp_nfd3_xsk_tx_bufs_free(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
84
memset(tx_ring->txds, 0, tx_ring->size);
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
85
tx_ring->wr_p = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
86
tx_ring->rd_p = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
87
tx_ring->qcp_rd_p = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
88
tx_ring->wr_ptr_add = 0;
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
90
if (tx_ring->is_xdp || !dp->netdev)
drivers/net/ethernet/netronome/nfp/nfd3/rings.c
93
nd_q = netdev_get_tx_queue(dp->netdev, tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
120
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
126
tx_ring = r_vec->xdp_ring;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
17
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
230
if (!nfp_nfd3_xsk_tx_xdp(dp, r_vec, rx_ring, tx_ring,
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
26
if (nfp_net_tx_space(tx_ring) < 1)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
261
if (tx_ring->wr_ptr_add)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
262
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
275
static bool nfp_nfd3_xsk_complete(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
277
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
283
if (tx_ring->wr_p == tx_ring->rd_p)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
287
qcp_rd_p = nfp_qcp_rd_ptr_read(tx_ring->qcp_q);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
289
if (qcp_rd_p == tx_ring->qcp_rd_p)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
292
todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
297
tx_ring->qcp_rd_p = D_IDX(tx_ring, tx_ring->qcp_rd_p + todo);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
303
idx = D_IDX(tx_ring, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
304
tx_ring->rd_p++;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
306
txbuf = &tx_ring->txbufs[idx];
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
32
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
326
WARN_ONCE(tx_ring->wr_p - tx_ring->rd_p > tx_ring->cnt,
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
328
tx_ring->rd_p, tx_ring->wr_p, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
333
static void nfp_nfd3_xsk_tx(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
335
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
34
txbuf = &tx_ring->txbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
344
while (nfp_net_tx_space(tx_ring) >= NFP_NET_XSK_TX_BATCH) {
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
352
wr_idx = D_IDX(tx_ring, tx_ring->wr_p + i);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
353
prefetchw(&tx_ring->txds[wr_idx]);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
360
wr_idx = D_IDX(tx_ring, tx_ring->wr_p + i);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
362
tx_ring->txbufs[wr_idx].real_len = desc[i].len;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
363
tx_ring->txbufs[wr_idx].is_xsk_tx = false;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
366
txd = &tx_ring->txds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
374
tx_ring->wr_p += got;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
384
nfp_qcp_wr_ptr_add(tx_ring->qcp_q, pkts);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
396
if (r_vec->tx_ring)
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
397
nfp_nfd3_tx_complete(r_vec->tx_ring, budget);
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
40
txd = &tx_ring->txds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
50
tx_ring->wr_ptr_add++;
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c
51
tx_ring->wr_p++;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1005
cnt = txd - tx_ring->ktxds - wr_idx;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1006
tx_ring->wr_p += cnt;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1007
if (tx_ring->wr_p % NFDK_TX_DESC_BLOCK_CNT)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1008
tx_ring->data_pending += pkt_len;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1010
tx_ring->data_pending = 0;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1012
tx_ring->wr_ptr_add += cnt;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1031
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1044
tx_ring = r_vec->xdp_ring;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1148
tx_ring,
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
119
nfp_nfdk_tx_maybe_close_block(struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1247
if (tx_ring->wr_ptr_add)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1248
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1249
else if (unlikely(tx_ring->wr_p != tx_ring->rd_p) &&
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1251
if (!nfp_nfdk_xdp_complete(tx_ring))
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1271
if (r_vec->tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1272
nfp_nfdk_tx_complete(r_vec->tx_ring, budget);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1291
if (r_vec->nfp_net->tx_coalesce_adapt_on && r_vec->tx_ring) {
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1313
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1323
tx_ring = r_vec->tx_ring;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1331
if (unlikely(nfp_net_tx_full(tx_ring, NFDK_TX_DESC_STOP_CNT))) {
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1355
if (nfp_nfdk_tx_maybe_close_block(tx_ring, skb))
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1359
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1360
txd = &tx_ring->ktxds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1361
txbuf = &tx_ring->ktxbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1411
cnt = txd - tx_ring->ktxds - wr_idx;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1416
tx_ring->wr_p += cnt;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1417
if (tx_ring->wr_p % NFDK_TX_DESC_BLOCK_CNT)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1418
tx_ring->data_pending += skb->len;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1420
tx_ring->data_pending = 0;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1422
tx_ring->wr_ptr_add += cnt;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1423
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
151
if (round_down(tx_ring->wr_p, NFDK_TX_DESC_BLOCK_CNT) !=
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
152
round_down(tx_ring->wr_p + n_descs, NFDK_TX_DESC_BLOCK_CNT))
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
155
if ((u32)tx_ring->data_pending + skb->len > NFDK_TX_MAX_DATA_PER_BLOCK)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
1564
nfp_nfdk_tx_complete(r_vec->tx_ring, 0);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
161
wr_p = tx_ring->wr_p;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
164
wr_idx = D_IDX(tx_ring, wr_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
165
tx_ring->ktxbufs[wr_idx].skb = NULL;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
166
txd = &tx_ring->ktxds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
170
tx_ring->data_pending = 0;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
171
tx_ring->wr_p += nop_slots;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
172
tx_ring->wr_ptr_add += nop_slots;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
18
static int nfp_nfdk_tx_ring_should_wake(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
20
return !nfp_net_tx_full(tx_ring, NFDK_TX_DESC_STOP_CNT * 2);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
23
static int nfp_nfdk_tx_ring_should_stop(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
25
return nfp_net_tx_full(tx_ring, NFDK_TX_DESC_STOP_CNT);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
258
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
273
tx_ring = &dp->tx_rings[qidx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
274
r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
278
if (unlikely(nfp_net_tx_full(tx_ring, NFDK_TX_DESC_STOP_CNT))) {
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
280
qidx, tx_ring->wr_p, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
282
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
29
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
293
if (nfp_nfdk_tx_maybe_close_block(tx_ring, skb))
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
301
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
302
txd = &tx_ring->ktxds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
303
txbuf = &tx_ring->ktxbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
35
if (unlikely(nfp_nfdk_tx_ring_should_wake(tx_ring)))
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
409
cnt = txd - tx_ring->ktxds - wr_idx;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
416
tx_ring->wr_p += cnt;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
417
if (tx_ring->wr_p % NFDK_TX_DESC_BLOCK_CNT)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
418
tx_ring->data_pending += skb->len;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
420
tx_ring->data_pending = 0;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
422
if (nfp_nfdk_tx_ring_should_stop(tx_ring))
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
423
nfp_nfdk_tx_ring_stop(nd_q, tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
425
tx_ring->wr_ptr_add += cnt;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
427
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
440
txbuf = &tx_ring->ktxbufs[wr_idx + 1];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
458
nfp_net_tx_xmit_more_flush(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
471
static void nfp_nfdk_tx_complete(struct nfp_net_tx_ring *tx_ring, int budget)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
473
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
482
rd_p = tx_ring->rd_p;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
483
if (tx_ring->wr_p == rd_p)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
487
qcp_rd_p = nfp_net_read_tx_cmpl(tx_ring, dp);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
489
if (qcp_rd_p == tx_ring->qcp_rd_p)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
492
todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
493
ktxbufs = tx_ring->ktxbufs;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
501
txbuf = &ktxbufs[D_IDX(tx_ring, rd_p)];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
544
tx_ring->rd_p = rd_p;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
545
tx_ring->qcp_rd_p = qcp_rd_p;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
555
nd_q = netdev_get_tx_queue(dp->netdev, tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
557
if (nfp_nfdk_tx_ring_should_wake(tx_ring)) {
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
565
WARN_ONCE(tx_ring->wr_p - tx_ring->rd_p > tx_ring->cnt,
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
567
tx_ring->rd_p, tx_ring->wr_p, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
835
static bool nfp_nfdk_xdp_complete(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
837
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
845
qcp_rd_p = nfp_net_read_tx_cmpl(tx_ring, dp);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
846
if (qcp_rd_p == tx_ring->qcp_rd_p)
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
849
todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
856
int idx = D_IDX(tx_ring, tx_ring->rd_p + done);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
860
txbuf = &tx_ring->ktxbufs[idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
888
tx_ring->qcp_rd_p = D_IDX(tx_ring, tx_ring->qcp_rd_p + done);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
889
tx_ring->rd_p += done;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
891
WARN_ONCE(tx_ring->wr_p - tx_ring->rd_p > tx_ring->cnt,
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
893
tx_ring->rd_p, tx_ring->wr_p, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
900
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
920
if (unlikely(nfp_net_tx_full(tx_ring, NFDK_TX_DESC_STOP_CNT))) {
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
922
nfp_nfdk_xdp_complete(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
926
if (unlikely(nfp_net_tx_full(tx_ring, NFDK_TX_DESC_STOP_CNT))) {
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
935
if ((round_down(tx_ring->wr_p, NFDK_TX_DESC_BLOCK_CNT) !=
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
936
round_down(tx_ring->wr_p + n_descs, NFDK_TX_DESC_BLOCK_CNT)) ||
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
937
((u32)tx_ring->data_pending + pkt_len >
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
939
unsigned int nop_slots = D_BLOCK_CPL(tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
941
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
942
txd = &tx_ring->ktxds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
946
tx_ring->data_pending = 0;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
947
tx_ring->wr_p += nop_slots;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
948
tx_ring->wr_ptr_add += nop_slots;
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
951
wr_idx = D_IDX(tx_ring, tx_ring->wr_p);
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
953
txbuf = &tx_ring->ktxbufs[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/dp.c
963
txd = &tx_ring->ktxds[wr_idx];
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
100
&tx_ring->dma,
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
102
if (!tx_ring->ktxds) {
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
104
tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
108
tx_ring->ktxbufs = kvzalloc_objs(*tx_ring->ktxbufs, tx_ring->cnt);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
109
if (!tx_ring->ktxbufs)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
11
nfp_nfdk_tx_ring_reset(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
112
if (!tx_ring->is_xdp && dp->netdev)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
114
tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
119
nfp_nfdk_tx_ring_free(tx_ring);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
125
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
131
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
139
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
143
u32 txd_cnt = tx_ring->cnt;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
147
txd = &tx_ring->ktxds[i];
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
150
txd->vals[0], txd->vals[1], tx_ring->ktxbufs[i].raw);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
152
if (i == tx_ring->rd_p % txd_cnt)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
154
if (i == tx_ring->wr_p % txd_cnt)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
16
while (!tx_ring->is_xdp && tx_ring->rd_p != tx_ring->wr_p) {
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
23
rd_idx = D_IDX(tx_ring, tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
24
txbuf = &tx_ring->ktxbufs[rd_idx];
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
28
n_descs = D_BLOCK_CPL(tx_ring->rd_p);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
57
tx_ring->rd_p += n_descs;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
60
memset(tx_ring->txds, 0, tx_ring->size);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
61
tx_ring->data_pending = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
62
tx_ring->wr_p = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
63
tx_ring->rd_p = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
64
tx_ring->qcp_rd_p = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
65
tx_ring->wr_ptr_add = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
67
if (tx_ring->is_xdp || !dp->netdev)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
70
nd_q = netdev_get_tx_queue(dp->netdev, tx_ring->idx);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
74
static void nfp_nfdk_tx_ring_free(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
76
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
79
kvfree(tx_ring->ktxbufs);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
81
if (tx_ring->ktxds)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
82
dma_free_coherent(dp->dev, tx_ring->size,
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
83
tx_ring->ktxds, tx_ring->dma);
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
85
tx_ring->cnt = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
86
tx_ring->txbufs = NULL;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
87
tx_ring->txds = NULL;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
88
tx_ring->dma = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
89
tx_ring->size = 0;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
93
nfp_nfdk_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
95
struct nfp_net_r_vector *r_vec = tx_ring->r_vec;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
97
tx_ring->cnt = dp->txd_cnt * NFDK_TX_DESC_PER_SIMPLE_PKT;
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
98
tx_ring->size = array_size(tx_ring->cnt, sizeof(*tx_ring->ktxds));
drivers/net/ethernet/netronome/nfp/nfdk/rings.c
99
tx_ring->ktxds = dma_alloc_coherent(dp->dev, tx_ring->size,
drivers/net/ethernet/netronome/nfp/nfp_net.h
398
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
1089
if (r_vec->tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
1214
nn_writel(nn, NFP_NET_CFG_TXR_IRQ_MOD(r_vec->tx_ring->idx), value);
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
1237
if (r_vec->tx_ring) {
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
796
r_vec->tx_ring =
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
100
d_wr_p = nfp_qcp_wr_ptr_read(tx_ring->qcp_q);
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
103
tx_ring->idx, tx_ring->qcidx,
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
104
tx_ring == r_vec->tx_ring ? "" : "xdp",
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
105
tx_ring->cnt, &tx_ring->dma, tx_ring->txds,
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
106
tx_ring->rd_p, tx_ring->wr_p, d_rd_p, d_wr_p);
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
107
if (tx_ring->txrwb)
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
108
seq_printf(file, " TXRWB=%llu", *tx_ring->txrwb);
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
111
nfp_net_debugfs_print_tx_descs(file, &nn->dp, r_vec, tx_ring,
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
83
struct nfp_net_tx_ring *tx_ring;
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
90
tx_ring = r_vec->xdp_ring;
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
92
tx_ring = r_vec->tx_ring;
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
93
if (!r_vec->nfp_net || !tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c
99
d_rd_p = nfp_qcp_rd_ptr_read(tx_ring->qcp_q);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
392
struct nfp_net_tx_ring *tx_ring, unsigned int idx)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
394
nn_writeq(nn, NFP_NET_CFG_TXR_ADDR(idx), tx_ring->dma);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
395
if (tx_ring->txrwb) {
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
396
*tx_ring->txrwb = 0;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
400
nn_writeb(nn, NFP_NET_CFG_TXR_SZ(idx), ilog2(tx_ring->cnt));
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
401
nn_writeb(nn, NFP_NET_CFG_TXR_VEC(idx), tx_ring->r_vec->irq_entry);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
53
nfp_net_tx_ring_init(struct nfp_net_tx_ring *tx_ring, struct nfp_net_dp *dp,
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
59
tx_ring->idx = idx;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
60
tx_ring->r_vec = r_vec;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
61
tx_ring->is_xdp = is_xdp;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
62
u64_stats_init(&tx_ring->r_vec->tx_sync);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
64
tx_ring->qcidx = tx_ring->idx * nn->stride_tx;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
65
tx_ring->txrwb = dp->txrwb ? &dp->txrwb[idx] : NULL;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
66
tx_ring->qcp_q = nn->tx_bar + NFP_QCP_QUEUE_OFF(tx_ring->qcidx);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
100
struct nfp_net_tx_ring *tx_ring, unsigned int idx);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
151
struct nfp_net_tx_ring *tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
153
struct nfp_net_tx_ring *tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
154
void (*tx_ring_free)(struct nfp_net_tx_ring *tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
156
struct nfp_net_tx_ring *tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
158
struct nfp_net_tx_ring *tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
162
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
167
nfp_net_tx_ring_reset(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
169
return dp->ops->tx_ring_reset(dp, tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
180
nfp_net_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
182
return dp->ops->tx_ring_alloc(dp, tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
186
nfp_net_tx_ring_free(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
188
dp->ops->tx_ring_free(tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
193
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
195
return dp->ops->tx_ring_bufs_alloc(dp, tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
200
struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
202
dp->ops->tx_ring_bufs_free(dp, tx_ring);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
208
struct nfp_net_tx_ring *tx_ring,
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
211
dp->ops->print_tx_descs(file, r_vec, tx_ring, d_rd_p, d_wr_p);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
51
static inline int nfp_net_tx_full(struct nfp_net_tx_ring *tx_ring, int dcnt)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
53
return (tx_ring->wr_p - tx_ring->rd_p) >= (tx_ring->cnt - dcnt);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
56
static inline void nfp_net_tx_xmit_more_flush(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
59
nfp_qcp_wr_ptr_add(tx_ring->qcp_q, tx_ring->wr_ptr_add);
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
60
tx_ring->wr_ptr_add = 0;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
64
nfp_net_read_tx_cmpl(struct nfp_net_tx_ring *tx_ring, struct nfp_net_dp *dp)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
66
if (tx_ring->txrwb)
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
67
return *tx_ring->txrwb;
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h
68
return nfp_qcp_rd_ptr_read(tx_ring->qcp_q);
drivers/net/ethernet/netronome/nfp/nfp_net_xsk.h
23
static inline int nfp_net_tx_space(struct nfp_net_tx_ring *tx_ring)
drivers/net/ethernet/netronome/nfp/nfp_net_xsk.h
25
return tx_ring->cnt - tx_ring->wr_p + tx_ring->rd_p - 1;
drivers/net/ethernet/nvidia/forcedeth.c
1936
np->get_tx = np->tx_ring;
drivers/net/ethernet/nvidia/forcedeth.c
1937
np->put_tx = np->tx_ring;
drivers/net/ethernet/nvidia/forcedeth.c
1940
np->last_tx.orig = &np->tx_ring.orig[np->tx_ring_size-1];
drivers/net/ethernet/nvidia/forcedeth.c
1942
np->last_tx.ex = &np->tx_ring.ex[np->tx_ring_size-1];
drivers/net/ethernet/nvidia/forcedeth.c
1954
np->tx_ring.orig[i].flaglen = 0;
drivers/net/ethernet/nvidia/forcedeth.c
1955
np->tx_ring.orig[i].buf = 0;
drivers/net/ethernet/nvidia/forcedeth.c
1957
np->tx_ring.ex[i].flaglen = 0;
drivers/net/ethernet/nvidia/forcedeth.c
1958
np->tx_ring.ex[i].txvlan = 0;
drivers/net/ethernet/nvidia/forcedeth.c
1959
np->tx_ring.ex[i].bufhigh = 0;
drivers/net/ethernet/nvidia/forcedeth.c
1960
np->tx_ring.ex[i].buflow = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2017
np->tx_ring.orig[i].flaglen = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2018
np->tx_ring.orig[i].buf = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2020
np->tx_ring.ex[i].flaglen = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2021
np->tx_ring.ex[i].txvlan = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2022
np->tx_ring.ex[i].bufhigh = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2023
np->tx_ring.ex[i].buflow = 0;
drivers/net/ethernet/nvidia/forcedeth.c
2263
put_tx = np->tx_ring.orig;
drivers/net/ethernet/nvidia/forcedeth.c
2312
put_tx = np->tx_ring.orig;
drivers/net/ethernet/nvidia/forcedeth.c
2318
if (unlikely(put_tx == np->tx_ring.orig))
drivers/net/ethernet/nvidia/forcedeth.c
2441
put_tx = np->tx_ring.ex;
drivers/net/ethernet/nvidia/forcedeth.c
2490
put_tx = np->tx_ring.ex;
drivers/net/ethernet/nvidia/forcedeth.c
2496
if (unlikely(put_tx == np->tx_ring.ex))
drivers/net/ethernet/nvidia/forcedeth.c
2648
np->get_tx.orig = np->tx_ring.orig;
drivers/net/ethernet/nvidia/forcedeth.c
2705
np->get_tx.ex = np->tx_ring.ex;
drivers/net/ethernet/nvidia/forcedeth.c
2760
le32_to_cpu(np->tx_ring.orig[i].buf),
drivers/net/ethernet/nvidia/forcedeth.c
2761
le32_to_cpu(np->tx_ring.orig[i].flaglen),
drivers/net/ethernet/nvidia/forcedeth.c
2762
le32_to_cpu(np->tx_ring.orig[i+1].buf),
drivers/net/ethernet/nvidia/forcedeth.c
2763
le32_to_cpu(np->tx_ring.orig[i+1].flaglen),
drivers/net/ethernet/nvidia/forcedeth.c
2764
le32_to_cpu(np->tx_ring.orig[i+2].buf),
drivers/net/ethernet/nvidia/forcedeth.c
2765
le32_to_cpu(np->tx_ring.orig[i+2].flaglen),
drivers/net/ethernet/nvidia/forcedeth.c
2766
le32_to_cpu(np->tx_ring.orig[i+3].buf),
drivers/net/ethernet/nvidia/forcedeth.c
2767
le32_to_cpu(np->tx_ring.orig[i+3].flaglen));
drivers/net/ethernet/nvidia/forcedeth.c
2775
le32_to_cpu(np->tx_ring.ex[i].bufhigh),
drivers/net/ethernet/nvidia/forcedeth.c
2776
le32_to_cpu(np->tx_ring.ex[i].buflow),
drivers/net/ethernet/nvidia/forcedeth.c
2777
le32_to_cpu(np->tx_ring.ex[i].flaglen),
drivers/net/ethernet/nvidia/forcedeth.c
2778
le32_to_cpu(np->tx_ring.ex[i+1].bufhigh),
drivers/net/ethernet/nvidia/forcedeth.c
2779
le32_to_cpu(np->tx_ring.ex[i+1].buflow),
drivers/net/ethernet/nvidia/forcedeth.c
2780
le32_to_cpu(np->tx_ring.ex[i+1].flaglen),
drivers/net/ethernet/nvidia/forcedeth.c
2781
le32_to_cpu(np->tx_ring.ex[i+2].bufhigh),
drivers/net/ethernet/nvidia/forcedeth.c
2782
le32_to_cpu(np->tx_ring.ex[i+2].buflow),
drivers/net/ethernet/nvidia/forcedeth.c
2783
le32_to_cpu(np->tx_ring.ex[i+2].flaglen),
drivers/net/ethernet/nvidia/forcedeth.c
2784
le32_to_cpu(np->tx_ring.ex[i+3].bufhigh),
drivers/net/ethernet/nvidia/forcedeth.c
2785
le32_to_cpu(np->tx_ring.ex[i+3].buflow),
drivers/net/ethernet/nvidia/forcedeth.c
2786
le32_to_cpu(np->tx_ring.ex[i+3].flaglen));
drivers/net/ethernet/nvidia/forcedeth.c
4739
np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size];
drivers/net/ethernet/nvidia/forcedeth.c
4742
np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size];
drivers/net/ethernet/nvidia/forcedeth.c
5183
np->tx_ring.orig[0].buf = cpu_to_le32(test_dma_addr);
drivers/net/ethernet/nvidia/forcedeth.c
5184
np->tx_ring.orig[0].flaglen = cpu_to_le32((pkt_len-1) | np->tx_flags | tx_flags_extra);
drivers/net/ethernet/nvidia/forcedeth.c
5186
np->tx_ring.ex[0].bufhigh = cpu_to_le32(dma_high(test_dma_addr));
drivers/net/ethernet/nvidia/forcedeth.c
5187
np->tx_ring.ex[0].buflow = cpu_to_le32(dma_low(test_dma_addr));
drivers/net/ethernet/nvidia/forcedeth.c
5188
np->tx_ring.ex[0].flaglen = cpu_to_le32((pkt_len-1) | np->tx_flags | tx_flags_extra);
drivers/net/ethernet/nvidia/forcedeth.c
5846
np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size];
drivers/net/ethernet/nvidia/forcedeth.c
5855
np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size];
drivers/net/ethernet/nvidia/forcedeth.c
830
union ring_type tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
586
struct pch_gbe_tx_ring *tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
609
struct pch_gbe_tx_ring *tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
282
struct pch_gbe_tx_ring *txdr = adapter->tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
319
tx_old = adapter->tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
332
adapter->tx_ring = txdr;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
348
err = pch_gbe_setup_tx_resources(adapter, adapter->tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
356
adapter->tx_ring = txdr;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
365
adapter->tx_ring = tx_old;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1072
struct pch_gbe_tx_ring *tx_ring,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1128
ring_num = tx_ring->next_to_use;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1129
if (unlikely((ring_num + 1) == tx_ring->count))
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1130
tx_ring->next_to_use = 0;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1132
tx_ring->next_to_use = ring_num + 1;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1135
buffer_info = &tx_ring->buffer_info[ring_num];
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1154
tx_ring->next_to_use = ring_num;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1162
tx_desc = PCH_GBE_TX_DESC(*tx_ring, ring_num);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1169
if (unlikely(++ring_num == tx_ring->count))
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1173
iowrite32(tx_ring->dma +
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1429
struct pch_gbe_tx_ring *tx_ring)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1440
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1441
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1445
tx_desc = PCH_GBE_TX_DESC(*tx_ring, i);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1461
struct pch_gbe_tx_ring *tx_ring)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1472
tx_ring->next_to_clean);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1474
i = tx_ring->next_to_clean;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1475
tx_desc = PCH_GBE_TX_DESC(*tx_ring, i);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1479
unused = PCH_GBE_DESC_UNUSED(tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1480
thresh = tx_ring->count - NAPI_POLL_WEIGHT;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1487
tx_ring->next_to_clean, tx_ring->next_to_use,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1495
tx_desc = PCH_GBE_TX_DESC(*tx_ring, k);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1497
if (++k >= tx_ring->count) k = 0; /*increment, wrap*/
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1502
unused, j, i, k, tx_ring->next_to_use,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1511
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1553
if (unlikely(++i == tx_ring->count))
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1555
tx_desc = PCH_GBE_TX_DESC(*tx_ring, i);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1576
tx_ring->next_to_clean = i;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1579
tx_ring->next_to_clean);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1710
struct pch_gbe_tx_ring *tx_ring)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1717
size = (int)sizeof(struct pch_gbe_buffer) * tx_ring->count;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1718
tx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1719
if (!tx_ring->buffer_info)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1722
tx_ring->size = tx_ring->count * (int)sizeof(struct pch_gbe_tx_desc);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1724
tx_ring->desc = dma_alloc_coherent(&pdev->dev, tx_ring->size,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1725
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1726
if (!tx_ring->desc) {
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1727
vfree(tx_ring->buffer_info);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1731
tx_ring->next_to_use = 0;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1732
tx_ring->next_to_clean = 0;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1734
for (desNo = 0; desNo < tx_ring->count; desNo++) {
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1735
tx_desc = PCH_GBE_TX_DESC(*tx_ring, desNo);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1740
tx_ring->desc, (unsigned long long)tx_ring->dma,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1741
tx_ring->next_to_clean, tx_ring->next_to_use);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1792
struct pch_gbe_tx_ring *tx_ring)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1796
pch_gbe_clean_tx_ring(adapter, tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1797
vfree(tx_ring->buffer_info);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1798
tx_ring->buffer_info = NULL;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1799
dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1800
tx_ring->dma);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1801
tx_ring->desc = NULL;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1860
struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1890
pch_gbe_alloc_tx_buffers(adapter, tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1936
pch_gbe_clean_tx_ring(adapter, adapter->tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
1996
err = pch_gbe_setup_tx_resources(adapter, adapter->tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2015
pch_gbe_free_tx_resources(adapter, adapter->tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2036
pch_gbe_free_tx_resources(adapter, adapter->tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2052
struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2054
if (unlikely(!PCH_GBE_DESC_UNUSED(tx_ring))) {
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2058
tx_ring->next_to_use, tx_ring->next_to_clean);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2063
pch_gbe_tx_queue(adapter, tx_ring, skb);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
2282
cleaned = pch_gbe_clean_tx(adapter, adapter->tx_ring);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
559
adapter->tx_ring = devm_kzalloc(&adapter->pdev->dev,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
560
sizeof(*adapter->tx_ring), GFP_KERNEL);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
561
if (!adapter->tx_ring)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
792
(unsigned long long)adapter->tx_ring->dma,
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
793
adapter->tx_ring->size);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
796
tdba = adapter->tx_ring->dma;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
797
tdlen = adapter->tx_ring->size - 0x10;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
911
struct pch_gbe_tx_ring *tx_ring)
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
919
for (i = 0; i < tx_ring->count; i++) {
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
920
buffer_info = &tx_ring->buffer_info[i];
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
926
size = (unsigned long)sizeof(struct pch_gbe_buffer) * tx_ring->count;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
927
memset(tx_ring->buffer_info, 0, size);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
930
memset(tx_ring->desc, 0, tx_ring->size);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
931
tx_ring->next_to_use = 0;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
932
tx_ring->next_to_clean = 0;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
933
iowrite32(tx_ring->dma, &hw->reg->TX_DSC_HW_P);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
934
iowrite32((tx_ring->size - 0x10), &hw->reg->TX_DSC_SIZE);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
448
struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
449
tx_ring->count = TxDescriptors;
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
450
pch_gbe_validate_option(&tx_ring->count, &opt, adapter);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
451
tx_ring->count = roundup(tx_ring->count,
drivers/net/ethernet/packetengines/hamachi.c
1005
if (hmp->tx_ring[entry].status_n_length & cpu_to_le32(DescOwn))
drivers/net/ethernet/packetengines/hamachi.c
1011
leXX_to_cpu(hmp->tx_ring[entry].addr),
drivers/net/ethernet/packetengines/hamachi.c
1016
hmp->tx_ring[entry].status_n_length = 0;
drivers/net/ethernet/packetengines/hamachi.c
1018
hmp->tx_ring[TX_RING_SIZE-1].status_n_length |=
drivers/net/ethernet/packetengines/hamachi.c
1066
printk(KERN_DEBUG" Tx ring %p: ", hmp->tx_ring);
drivers/net/ethernet/packetengines/hamachi.c
1069
le32_to_cpu(hmp->tx_ring[i].status_n_length));
drivers/net/ethernet/packetengines/hamachi.c
1094
hmp->tx_ring[i].status_n_length =
drivers/net/ethernet/packetengines/hamachi.c
1096
(hmp->tx_ring[i].status_n_length &
drivers/net/ethernet/packetengines/hamachi.c
1099
hmp->tx_ring[i].status_n_length &= cpu_to_le32(0x0000ffff);
drivers/net/ethernet/packetengines/hamachi.c
1103
leXX_to_cpu(hmp->tx_ring[i].addr),
drivers/net/ethernet/packetengines/hamachi.c
1208
hmp->tx_ring[i].status_n_length = 0;
drivers/net/ethernet/packetengines/hamachi.c
1211
hmp->tx_ring[TX_RING_SIZE-1].status_n_length |= cpu_to_le32(DescEndRing);
drivers/net/ethernet/packetengines/hamachi.c
1247
hmp->tx_ring[entry].addr = cpu_to_leXX(dma_map_single(&hmp->pci_dev->dev,
drivers/net/ethernet/packetengines/hamachi.c
1262
hmp->tx_ring[entry].status_n_length = cpu_to_le32(DescOwn |
drivers/net/ethernet/packetengines/hamachi.c
1265
hmp->tx_ring[entry].status_n_length = cpu_to_le32(DescOwn |
drivers/net/ethernet/packetengines/hamachi.c
1344
if (hmp->tx_ring[entry].status_n_length & cpu_to_le32(DescOwn))
drivers/net/ethernet/packetengines/hamachi.c
1350
leXX_to_cpu(hmp->tx_ring[entry].addr),
drivers/net/ethernet/packetengines/hamachi.c
1356
hmp->tx_ring[entry].status_n_length = 0;
drivers/net/ethernet/packetengines/hamachi.c
1358
hmp->tx_ring[TX_RING_SIZE-1].status_n_length |=
drivers/net/ethernet/packetengines/hamachi.c
1690
readl(ioaddr + TxCurPtr) == (long)&hmp->tx_ring[i] ? '>' : ' ',
drivers/net/ethernet/packetengines/hamachi.c
1691
i, hmp->tx_ring[i].status_n_length, hmp->tx_ring[i].addr);
drivers/net/ethernet/packetengines/hamachi.c
1734
leXX_to_cpu(hmp->tx_ring[i].addr),
drivers/net/ethernet/packetengines/hamachi.c
1929
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, hmp->tx_ring,
drivers/net/ethernet/packetengines/hamachi.c
485
struct hamachi_desc *tx_ring;
drivers/net/ethernet/packetengines/hamachi.c
655
hmp->tx_ring = ring_space;
drivers/net/ethernet/packetengines/hamachi.c
785
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, hmp->tx_ring,
drivers/net/ethernet/packetengines/yellowfin.c
1233
ioread32(ioaddr + TxPtr) == (long)&yp->tx_ring[i] ? '>' : ' ',
drivers/net/ethernet/packetengines/yellowfin.c
1234
i, yp->tx_ring[i].dbdma_cmd, yp->tx_ring[i].addr,
drivers/net/ethernet/packetengines/yellowfin.c
1235
yp->tx_ring[i].branch_addr, yp->tx_ring[i].result_status);
drivers/net/ethernet/packetengines/yellowfin.c
1401
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
drivers/net/ethernet/packetengines/yellowfin.c
310
struct yellowfin_desc *tx_ring;
drivers/net/ethernet/packetengines/yellowfin.c
443
np->tx_ring = ring_space;
drivers/net/ethernet/packetengines/yellowfin.c
519
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
drivers/net/ethernet/packetengines/yellowfin.c
704
pr_warn(" Tx ring %p: ", yp->tx_ring);
drivers/net/ethernet/packetengines/yellowfin.c
708
yp->tx_ring[i].result_status);
drivers/net/ethernet/packetengines/yellowfin.c
768
yp->tx_ring[i].dbdma_cmd = cpu_to_le32(CMD_STOP);
drivers/net/ethernet/packetengines/yellowfin.c
769
yp->tx_ring[i].branch_addr = cpu_to_le32(yp->tx_ring_dma +
drivers/net/ethernet/packetengines/yellowfin.c
773
yp->tx_ring[--i].dbdma_cmd = cpu_to_le32(CMD_STOP | BRANCH_ALWAYS);
drivers/net/ethernet/packetengines/yellowfin.c
781
yp->tx_ring[j].dbdma_cmd = cpu_to_le32(CMD_STOP);
drivers/net/ethernet/packetengines/yellowfin.c
782
yp->tx_ring[j].branch_addr = cpu_to_le32(yp->tx_ring_dma +
drivers/net/ethernet/packetengines/yellowfin.c
786
yp->tx_ring[j].dbdma_cmd =
drivers/net/ethernet/packetengines/yellowfin.c
788
yp->tx_ring[j].request_cnt = sizeof(*yp->tx_status);
drivers/net/ethernet/packetengines/yellowfin.c
789
yp->tx_ring[j].addr = cpu_to_le32(yp->tx_status_dma +
drivers/net/ethernet/packetengines/yellowfin.c
793
yp->tx_ring[j].dbdma_cmd =
drivers/net/ethernet/packetengines/yellowfin.c
795
yp->tx_ring[j].request_cnt = 2;
drivers/net/ethernet/packetengines/yellowfin.c
797
yp->tx_ring[j].addr = cpu_to_le32(yp->tx_status_dma +
drivers/net/ethernet/packetengines/yellowfin.c
802
yp->tx_ring[j].branch_addr = cpu_to_le32(yp->tx_ring_dma +
drivers/net/ethernet/packetengines/yellowfin.c
806
yp->tx_ring[++j].dbdma_cmd |= cpu_to_le32(BRANCH_ALWAYS | INTR_ALWAYS);
drivers/net/ethernet/packetengines/yellowfin.c
843
yp->tx_ring[entry].addr = cpu_to_le32(dma_map_single(&yp->pci_dev->dev,
drivers/net/ethernet/packetengines/yellowfin.c
846
yp->tx_ring[entry].result_status = 0;
drivers/net/ethernet/packetengines/yellowfin.c
849
yp->tx_ring[0].dbdma_cmd = cpu_to_le32(CMD_STOP);
drivers/net/ethernet/packetengines/yellowfin.c
850
yp->tx_ring[TX_RING_SIZE-1].dbdma_cmd =
drivers/net/ethernet/packetengines/yellowfin.c
853
yp->tx_ring[entry+1].dbdma_cmd = cpu_to_le32(CMD_STOP);
drivers/net/ethernet/packetengines/yellowfin.c
854
yp->tx_ring[entry].dbdma_cmd =
drivers/net/ethernet/packetengines/yellowfin.c
859
yp->tx_ring[entry<<1].request_cnt = len;
drivers/net/ethernet/packetengines/yellowfin.c
860
yp->tx_ring[entry<<1].addr = cpu_to_le32(dma_map_single(&yp->pci_dev->dev,
drivers/net/ethernet/packetengines/yellowfin.c
869
yp->tx_ring[next_entry<<1].dbdma_cmd = cpu_to_le32(CMD_STOP);
drivers/net/ethernet/packetengines/yellowfin.c
873
yp->tx_ring[entry<<1].dbdma_cmd =
drivers/net/ethernet/packetengines/yellowfin.c
931
if (yp->tx_ring[entry].result_status == 0)
drivers/net/ethernet/packetengines/yellowfin.c
938
le32_to_cpu(yp->tx_ring[entry].addr),
drivers/net/ethernet/packetengines/yellowfin.c
996
yp->tx_ring[entry << 1].addr,
drivers/net/ethernet/pasemi/pasemi_mac.c
1128
pasemi_dma_start_chan(&tx_ring(mac)->chan, PAS_DMA_TXCHAN_TCMDSTA_SZ |
drivers/net/ethernet/pasemi/pasemi_mac.c
1217
int txch = tx_ring(mac)->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
1282
txch = tx_ring(mac)->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
1313
pasemi_mac_clean_tx(tx_ring(mac));
drivers/net/ethernet/pasemi/pasemi_mac.c
1427
struct pasemi_mac_txring * const txring = tx_ring(mac);
drivers/net/ethernet/pasemi/pasemi_mac.c
1563
pasemi_mac_clean_tx(tx_ring(mac));
drivers/net/ethernet/pasemi/pasemi_mac.c
507
struct pasemi_mac_txring *txring = tx_ring(mac);
drivers/net/ethernet/pasemi/pasemi_mac.c
645
pcnt = *tx_ring(mac)->chan.status & PAS_STATUS_PCNT_M;
drivers/net/ethernet/pasemi/pasemi_mac.c
649
write_iob_reg(PAS_IOB_DMA_TXCH_RESET(tx_ring(mac)->chan.chno), reg);
drivers/net/ethernet/pasemi/pasemi_mac.c
676
struct pasemi_dmachan *chan = &tx_ring(mac)->chan;
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
1638
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
1787
struct nx_host_tx_ring *tx_ring);
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
1855
static inline u32 netxen_tx_avail(struct nx_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
1858
return find_diff_among(tx_ring->producer,
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
1859
tx_ring->sw_consumer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
65
#define TX_BUFF_RINGSIZE(tx_ring) \
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
66
(sizeof(struct netxen_cmd_buffer) * tx_ring->num_desc)
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
67
#define TX_DESC_RINGSIZE(tx_ring) \
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
68
(sizeof(struct cmd_desc_type0) * tx_ring->num_desc)
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
429
struct nx_host_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
469
prq_cds->host_phys_addr = cpu_to_le64(tx_ring->phys_addr);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
470
prq_cds->ring_size = cpu_to_le32(tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
482
tx_ring->crb_cmd_producer = netxen_get_ioaddr(adapter,
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
683
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
689
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
693
hwctx->cmd_ring_addr = cpu_to_le64(tx_ring->phys_addr);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
694
hwctx->cmd_ring_size = cpu_to_le32(tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
739
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
746
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
761
tx_ring->hw_consumer =
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
765
addr = dma_alloc_coherent(&pdev->dev, TX_DESC_RINGSIZE(tx_ring),
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
766
&tx_ring->phys_addr, GFP_KERNEL);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
775
tx_ring->desc_head = addr;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
852
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
883
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
884
if (tx_ring->desc_head != NULL) {
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
886
TX_DESC_RINGSIZE(tx_ring),
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
887
tx_ring->desc_head, tx_ring->phys_addr);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
888
tx_ring->desc_head = NULL;
drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c
322
regs_buff[i++] = le32_to_cpu(*(adapter->tx_ring->hw_consumer));
drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c
334
adapter->tx_ring->crb_cmd_consumer);
drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c
337
regs_buff[i++] = NXRDIO(adapter, adapter->tx_ring->crb_cmd_producer);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
555
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
562
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
563
__netif_tx_lock_bh(tx_ring->txq);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
565
producer = tx_ring->producer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
567
if (nr_desc >= netxen_tx_avail(tx_ring)) {
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
568
netif_tx_stop_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
570
if (netxen_tx_avail(tx_ring) > nr_desc) {
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
571
if (netxen_tx_avail(tx_ring) > TX_STOP_THRESH)
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
572
netif_tx_wake_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
574
__netif_tx_unlock_bh(tx_ring->txq);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
580
pbuf = &tx_ring->cmd_buf_arr[producer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
584
memcpy(&tx_ring->desc_head[producer],
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
587
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
592
tx_ring->producer = producer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
594
netxen_nic_update_cmd_producer(adapter, tx_ring);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
596
__netif_tx_unlock_bh(tx_ring->txq);
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
118
struct nx_host_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
121
cmd_buf = tx_ring->cmd_buf_arr;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
122
for (i = 0; i < tx_ring->num_desc; i++) {
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
151
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
167
if (adapter->tx_ring == NULL)
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
170
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
171
vfree(tx_ring->cmd_buf_arr);
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
172
kfree(tx_ring);
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
173
adapter->tx_ring = NULL;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1742
struct nx_host_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1747
sw_consumer = tx_ring->sw_consumer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1748
hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer));
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1751
buffer = &tx_ring->cmd_buf_arr[sw_consumer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1769
sw_consumer = get_next_index(sw_consumer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1774
tx_ring->sw_consumer = sw_consumer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1780
if (netxen_tx_avail(tx_ring) > TX_STOP_THRESH)
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
1797
hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer));
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
181
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
188
tx_ring = kzalloc_obj(struct nx_host_tx_ring);
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
189
if (tx_ring == NULL)
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
192
adapter->tx_ring = tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
194
tx_ring->num_desc = adapter->num_txd;
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
195
tx_ring->txq = netdev_get_tx_queue(netdev, 0);
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
197
cmd_buf_arr = vzalloc(TX_BUFF_RINGSIZE(tx_ring));
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
201
tx_ring->cmd_buf_arr = cmd_buf_arr;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
103
struct nx_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
105
NXWRIO(adapter, tx_ring->crb_cmd_producer, tx_ring->producer);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
115
struct nx_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
117
NXWRIO(adapter, tx_ring->crb_cmd_consumer, tx_ring->sw_consumer);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1197
struct nx_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1233
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1234
tx_ring->crb_cmd_producer = netxen_get_ioaddr(adapter,
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1236
tx_ring->crb_cmd_consumer = netxen_get_ioaddr(adapter,
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1239
tx_ring->producer = 0;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1240
tx_ring->sw_consumer = 0;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1242
netxen_nic_update_cmd_producer(adapter, tx_ring);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1243
netxen_nic_update_cmd_consumer(adapter, tx_ring);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1841
struct nx_host_tx_ring *tx_ring,
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1915
producer = tx_ring->producer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1922
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1923
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1938
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1946
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1947
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1955
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
1958
tx_ring->producer = producer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2023
struct nx_host_tx_ring *tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2034
u32 num_txd = tx_ring->num_desc;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2054
if (unlikely(netxen_tx_avail(tx_ring) <= TX_STOP_THRESH)) {
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2057
if (netxen_tx_avail(tx_ring) > TX_STOP_THRESH)
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2063
producer = tx_ring->producer;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2064
pbuf = &tx_ring->cmd_buf_arr[producer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2074
first_desc = hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2087
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2089
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2111
tx_ring->producer = get_next_index(producer, num_txd);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2113
netxen_tso_check(netdev, tx_ring, first_desc, skb);
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
2118
netxen_nic_update_cmd_producer(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1102
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1721
static inline u32 qlcnic_tx_avail(struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1723
if (likely(tx_ring->producer < tx_ring->sw_consumer))
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1724
return tx_ring->sw_consumer - tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1726
return tx_ring->sw_consumer + tx_ring->num_desc -
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1727
tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
1799
u16 vlan, struct qlcnic_host_tx_ring *tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2058
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2060
adapter->ahw->hw_ops->change_l2_filter(adapter, addr, vlan, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2164
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2168
writel(0x0, tx_ring->crb_intr_mask);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2173
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2177
writel(1, tx_ring->crb_intr_mask);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2182
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2184
writel(0, tx_ring->crb_intr_mask);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2189
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2191
writel(1, tx_ring->crb_intr_mask);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2247
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2250
adapter->ahw->hw_ops->enable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2254
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
2257
adapter->ahw->hw_ops->disable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
592
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
70
#define TX_BUFF_RINGSIZE(tx_ring) \
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
71
(sizeof(struct qlcnic_cmd_buffer) * tx_ring->num_desc)
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
72
#define TX_DESC_RINGSIZE(tx_ring) \
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
73
(sizeof(struct cmd_desc_type0) * tx_ring->num_desc)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
1296
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
1310
cmd.req.arg[1] = tx_ring->ctx_id | temp;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2144
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2233
temp = adapter->tx_ring->ctx_id;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
3540
cmd.req.arg[1] = BIT_1 | (adapter->tx_ring->ctx_id << 16);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
413
struct qlcnic_host_tx_ring *tx_ring,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
431
tx_ring->producer = 0;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
432
tx_ring->sw_consumer = 0;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
433
*(tx_ring->hw_consumer) = 0;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
474
prq->cmd_cons_dma_addr = cpu_to_le64(tx_ring->hw_cons_phys_addr);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
478
prq_cds->host_phys_addr = cpu_to_le64(tx_ring->phys_addr);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
479
prq_cds->ring_size = cpu_to_le32(tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
493
tx_ring->state = le32_to_cpu(prsp->host_ctx_state);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
495
tx_ring->crb_cmd_producer = adapter->ahw->pci_base0 + temp;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
496
tx_ring->ctx_id = le16_to_cpu(prsp->context_id);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
502
tx_ring->crb_intr_mask = ahw->pci_base0 + intr_mask;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
506
tx_ring->ctx_id, tx_ring->state);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
524
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
533
cmd.req.arg[1] = tx_ring->ctx_id;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
563
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
571
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
573
&tx_ring->hw_cons_phys_addr,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
580
tx_ring->hw_consumer = ptr;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
582
addr = dma_alloc_coherent(&pdev->dev, TX_DESC_RINGSIZE(tx_ring),
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
583
&tx_ring->phys_addr,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
590
tx_ring->desc_head = addr;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
662
&dev->tx_ring[ring],
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
670
qlcnic_fw_cmd_del_tx_ctx(dev, &dev->tx_ring[i]);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
701
&adapter->tx_ring[ring]);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
724
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
730
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
731
if (tx_ring->hw_consumer != NULL) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
733
tx_ring->hw_consumer,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
734
tx_ring->hw_cons_phys_addr);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
736
tx_ring->hw_consumer = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
739
if (tx_ring->desc_head != NULL) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
741
TX_DESC_RINGSIZE(tx_ring),
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
742
tx_ring->desc_head,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
743
tx_ring->phys_addr);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
744
tx_ring->desc_head = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1307
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1312
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1313
tx_stats.xmit_on += tx_ring->tx_stats.xmit_on;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1314
tx_stats.xmit_off += tx_ring->tx_stats.xmit_off;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1315
tx_stats.xmit_called += tx_ring->tx_stats.xmit_called;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1316
tx_stats.xmit_finished += tx_ring->tx_stats.xmit_finished;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1317
tx_stats.tx_bytes += tx_ring->tx_stats.tx_bytes;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1329
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1331
tx_ring = (struct qlcnic_host_tx_ring *)stats;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1333
*data++ = QLCNIC_FILL_STATS(tx_ring->tx_stats.xmit_on);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1334
*data++ = QLCNIC_FILL_STATS(tx_ring->tx_stats.xmit_off);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1335
*data++ = QLCNIC_FILL_STATS(tx_ring->tx_stats.xmit_called);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1336
*data++ = QLCNIC_FILL_STATS(tx_ring->tx_stats.xmit_finished);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1337
*data++ = QLCNIC_FILL_STATS(tx_ring->tx_stats.tx_bytes);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1346
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1356
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
1357
data = qlcnic_fill_tx_queue_stats(data, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
535
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
563
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
564
regs_buff[i++] = le32_to_cpu(*(tx_ring->hw_consumer));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
565
regs_buff[i++] = tx_ring->sw_consumer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
566
regs_buff[i++] = readl(tx_ring->crb_cmd_producer);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
567
regs_buff[i++] = tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
568
if (tx_ring->crb_intr_mask)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
569
regs_buff[i++] = readl(tx_ring->crb_intr_mask);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
700
u8 rx_ring, u8 tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
702
if (rx_ring == 0 || tx_ring == 0)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
714
if (tx_ring != 0) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
715
if (tx_ring > adapter->max_tx_rings) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
718
tx_ring, adapter->max_tx_rings);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
387
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
394
tx_ring = &adapter->tx_ring[0];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
395
__netif_tx_lock_bh(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
397
producer = tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
399
if (nr_desc >= qlcnic_tx_avail(tx_ring)) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
400
netif_tx_stop_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
402
if (qlcnic_tx_avail(tx_ring) > nr_desc) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
403
if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
404
netif_tx_wake_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
407
__netif_tx_unlock_bh(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
415
pbuf = &tx_ring->cmd_buf_arr[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
419
memcpy(&tx_ring->desc_head[producer],
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
422
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
427
tx_ring->producer = producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
429
qlcnic_update_cmd_producer(tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
431
__netif_tx_unlock_bh(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h
176
struct qlcnic_host_tx_ring *tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h
195
struct qlcnic_host_tx_ring *tx_ring, int);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
128
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
134
spin_lock(&tx_ring->tx_clean_lock);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
136
cmd_buf = tx_ring->cmd_buf_arr;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
137
for (i = 0; i < tx_ring->num_desc; i++) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
160
spin_unlock(&tx_ring->tx_clean_lock);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
248
sds_ring->tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
250
sds_ring->tx_ring = &adapter->tx_ring[0];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1000
napi_complete(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1002
qlcnic_enable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1579
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1607
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1608
netif_napi_add_tx(netdev, &tx_ring->napi,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1621
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1632
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1633
netif_napi_del(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1644
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1660
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1661
napi_enable(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1662
qlcnic_enable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1671
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1688
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1689
qlcnic_disable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1690
napi_synchronize(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1691
napi_disable(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1954
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1959
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1961
tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1982
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1987
tx_ring = adapter->tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
1989
tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2007
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2010
tx_ring = container_of(napi, struct qlcnic_host_tx_ring, napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2011
adapter = tx_ring->adapter;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2012
work_done = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2014
napi_complete(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2016
qlcnic_enable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2047
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2063
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2064
napi_enable(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2065
qlcnic_enable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2075
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2091
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2092
qlcnic_disable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2093
napi_synchronize(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2094
napi_disable(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2104
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2134
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2135
netif_napi_add_tx(netdev, &tx_ring->napi,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2148
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2160
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
2161
netif_napi_del(&tx_ring->napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
271
u16 vlan_id, struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
280
producer = tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
281
hwdesc = &tx_ring->desc_head[tx_ring->producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
297
tx_ring->producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
304
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
338
vlan_id, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
353
qlcnic_change_filter(adapter, &src_addr, vlan_id, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
373
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
377
u32 producer = tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
407
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
408
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
413
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
416
tx_ring->producer = producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
459
struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
467
u32 producer = tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
519
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
520
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
535
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
541
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
542
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
548
producer = get_next_index(producer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
551
tx_ring->producer = producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
651
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
673
tx_ring = &adapter->tx_ring[skb_get_queue_mapping(skb)];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
674
num_txd = tx_ring->num_desc;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
691
if (unlikely(qlcnic_tx_avail(tx_ring) <= TX_STOP_THRESH)) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
692
netif_tx_stop_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
693
if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
694
netif_tx_start_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
696
tx_ring->tx_stats.xmit_off++;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
701
producer = tx_ring->producer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
702
pbuf = &tx_ring->cmd_buf_arr[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
704
first_desc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
705
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
725
hwdesc = &tx_ring->desc_head[producer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
727
tx_ring->cmd_buf_arr[producer].skb = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
748
tx_ring->producer = get_next_index(producer, num_txd);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
761
tx_ring)))
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
765
skb, tx_ring)))
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
770
qlcnic_send_filter(adapter, first_desc, skb, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
772
tx_ring->tx_stats.tx_bytes += skb->len;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
773
tx_ring->tx_stats.xmit_called++;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
777
qlcnic_update_cmd_producer(tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
886
struct qlcnic_host_tx_ring *tx_ring,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
896
if (!spin_trylock(&tx_ring->tx_clean_lock))
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
899
sw_consumer = tx_ring->sw_consumer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
900
hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
903
buffer = &tx_ring->cmd_buf_arr[sw_consumer];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
915
tx_ring->tx_stats.xmit_finished++;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
920
sw_consumer = get_next_index(sw_consumer, tx_ring->num_desc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
925
tx_ring->sw_consumer = sw_consumer;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
929
if (netif_tx_queue_stopped(tx_ring->txq) &&
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
931
if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
932
netif_tx_wake_queue(tx_ring->txq);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
933
tx_ring->tx_stats.xmit_on++;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
951
hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
954
spin_unlock(&tx_ring->tx_clean_lock);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
964
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
968
tx_ring = sds_ring->tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
970
tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
982
qlcnic_enable_tx_intr(adapter, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
991
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
995
tx_ring = container_of(napi, struct qlcnic_host_tx_ring, napi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
996
adapter = tx_ring->adapter;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
998
work_done = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
117
inline void qlcnic_update_cmd_producer(struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
119
writel(tx_ring->producer, tx_ring->crb_cmd_producer);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1693
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1763
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1764
snprintf(tx_ring->name, sizeof(tx_ring->name),
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1766
err = request_irq(tx_ring->irq, handler, flags,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1767
tx_ring->name, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1781
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1800
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1801
if (tx_ring->irq)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1802
free_irq(tx_ring->irq, tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
1941
qlcnic_release_tx_buffers(adapter, &adapter->tx_ring[ring]);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2334
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2337
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2338
if (tx_ring) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2339
vfree(tx_ring->cmd_buf_arr);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2340
tx_ring->cmd_buf_arr = NULL;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2343
kfree(adapter->tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2350
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2353
tx_ring = kzalloc_objs(struct qlcnic_host_tx_ring,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2355
if (tx_ring == NULL)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2358
adapter->tx_ring = tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2361
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2362
tx_ring->num_desc = adapter->num_txd;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2363
tx_ring->txq = netdev_get_tx_queue(netdev, ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2364
cmd_buf_arr = vzalloc(TX_BUFF_RINGSIZE(tx_ring));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2369
tx_ring->cmd_buf_arr = cmd_buf_arr;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2370
spin_lock_init(&tx_ring->tx_clean_lock);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2376
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2377
tx_ring->adapter = adapter;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2381
tx_ring->irq = vector;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2933
static inline void dump_tx_ring_desc(struct qlcnic_host_tx_ring *tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2937
for (i = 0; i < tx_ring->num_desc; i++) {
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2940
&tx_ring->desc_head[i],
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2951
struct qlcnic_host_tx_ring *tx_ring;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2979
tx_ring = &adapter->tx_ring[ring];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2980
if (!tx_ring)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2983
ring, tx_ring->ctx_id);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2986
tx_ring->tx_stats.xmit_finished,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2987
tx_ring->tx_stats.xmit_called,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2988
tx_ring->tx_stats.xmit_on,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2989
tx_ring->tx_stats.xmit_off);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2991
if (tx_ring->crb_intr_mask)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2993
readl(tx_ring->crb_intr_mask));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2997
readl(tx_ring->crb_cmd_producer),
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2998
tx_ring->producer, tx_ring->sw_consumer,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
2999
le32_to_cpu(*(tx_ring->hw_consumer)));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
3002
tx_ring->num_desc, qlcnic_tx_avail(tx_ring));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
3005
dump_tx_ring_desc(tx_ring);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
3129
struct qlcnic_host_tx_ring *tx_ring = data;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
3131
napi_schedule(&tx_ring->napi);
drivers/net/ethernet/qualcomm/qca_spi.c
448
qcaspi_tx_ring_has_space(struct tx_ring *txr)
drivers/net/ethernet/qualcomm/qca_spi.h
74
struct tx_ring txr;
drivers/net/ethernet/rdc/r6040.c
182
struct r6040_descriptor *tx_ring;
drivers/net/ethernet/rdc/r6040.c
317
lp->tx_remove_ptr = lp->tx_insert_ptr = lp->tx_ring;
drivers/net/ethernet/rdc/r6040.c
318
r6040_init_ring_desc(lp->tx_ring, lp->tx_ring_dma, TX_DCNT);
drivers/net/ethernet/rdc/r6040.c
500
if (lp->tx_ring) {
drivers/net/ethernet/rdc/r6040.c
501
dma_free_coherent(&pdev->dev, TX_DESC_SIZE, lp->tx_ring,
drivers/net/ethernet/rdc/r6040.c
503
lp->tx_ring = NULL;
drivers/net/ethernet/rdc/r6040.c
769
lp->tx_ring =
drivers/net/ethernet/rdc/r6040.c
772
if (!lp->tx_ring) {
drivers/net/ethernet/rdc/r6040.c
787
dma_free_coherent(&lp->pdev->dev, TX_DESC_SIZE, lp->tx_ring,
drivers/net/ethernet/realtek/8139cp.c
1104
memset(cp->tx_ring, 0, sizeof(struct cp_desc) * CP_TX_RING_SIZE);
drivers/net/ethernet/realtek/8139cp.c
1105
cp->tx_ring[CP_TX_RING_SIZE - 1].opts1 = cpu_to_le32(RingEnd);
drivers/net/ethernet/realtek/8139cp.c
1124
cp->tx_ring = &cp->rx_ring[CP_RX_RING_SIZE];
drivers/net/ethernet/realtek/8139cp.c
1151
desc = cp->tx_ring + i;
drivers/net/ethernet/realtek/8139cp.c
1163
memset(cp->tx_ring, 0, sizeof(struct cp_desc) * CP_TX_RING_SIZE);
drivers/net/ethernet/realtek/8139cp.c
1176
cp->tx_ring = NULL;
drivers/net/ethernet/realtek/8139cp.c
1255
i, &cp->tx_ring[i], le32_to_cpu(cp->tx_ring[i].opts1),
drivers/net/ethernet/realtek/8139cp.c
1256
cp->tx_opts[i], le32_to_cpu(cp->tx_ring[i].opts2),
drivers/net/ethernet/realtek/8139cp.c
1257
le64_to_cpu(cp->tx_ring[i].addr),
drivers/net/ethernet/realtek/8139cp.c
343
struct cp_desc *tx_ring;
drivers/net/ethernet/realtek/8139cp.c
655
struct cp_desc *txd = cp->tx_ring + tx_tail;
drivers/net/ethernet/realtek/8139cp.c
724
txd = &cp->tx_ring[index];
drivers/net/ethernet/realtek/8139cp.c
779
struct cp_desc *txd = &cp->tx_ring[entry];
drivers/net/ethernet/realtek/8139cp.c
842
txd = &cp->tx_ring[entry];
drivers/net/ethernet/realtek/8139cp.c
854
txd = &cp->tx_ring[first_entry];
drivers/net/ethernet/realtek/rtase/rtase.h
330
struct rtase_ring tx_ring[RTASE_NUM_TX_QUEUE];
drivers/net/ethernet/realtek/rtase/rtase_main.c
1324
ring = &tp->tx_ring[q_idx];
drivers/net/ethernet/realtek/rtase/rtase_main.c
140
if (!tp->tx_ring[i].desc)
drivers/net/ethernet/realtek/rtase/rtase_main.c
144
tp->tx_ring[i].desc,
drivers/net/ethernet/realtek/rtase/rtase_main.c
145
tp->tx_ring[i].phy_addr);
drivers/net/ethernet/realtek/rtase/rtase_main.c
146
tp->tx_ring[i].desc = NULL;
drivers/net/ethernet/realtek/rtase/rtase_main.c
1582
ring = &tp->tx_ring[0];
drivers/net/ethernet/realtek/rtase/rtase_main.c
169
tp->tx_ring[i].desc =
drivers/net/ethernet/realtek/rtase/rtase_main.c
172
&tp->tx_ring[i].phy_addr,
drivers/net/ethernet/realtek/rtase/rtase_main.c
174
if (!tp->tx_ring[i].desc)
drivers/net/ethernet/realtek/rtase/rtase_main.c
238
ring = &tp->tx_ring[i];
drivers/net/ethernet/realtek/rtase/rtase_main.c
320
struct rtase_ring *ring = &tp->tx_ring[idx];
drivers/net/ethernet/realtek/rtase/rtase_main.c
700
ring = &tp->tx_ring[i];
drivers/net/ethernet/renesas/ravb.h
1098
struct ravb_tx_desc *tx_ring[NUM_TX_QUEUE];
drivers/net/ethernet/renesas/ravb_main.c
210
desc = &priv->tx_ring[q][entry];
drivers/net/ethernet/renesas/ravb_main.c
2175
desc = &priv->tx_ring[q][entry];
drivers/net/ethernet/renesas/ravb_main.c
2188
desc = &priv->tx_ring[q][entry];
drivers/net/ethernet/renesas/ravb_main.c
262
if (priv->tx_ring[q]) {
drivers/net/ethernet/renesas/ravb_main.c
267
dma_free_coherent(ndev->dev.parent, ring_size, priv->tx_ring[q],
drivers/net/ethernet/renesas/ravb_main.c
269
priv->tx_ring[q] = NULL;
drivers/net/ethernet/renesas/ravb_main.c
379
memset(priv->tx_ring[q], 0, tx_ring_size);
drivers/net/ethernet/renesas/ravb_main.c
381
for (i = 0, tx_desc = priv->tx_ring[q]; i < priv->num_tx_ring[q];
drivers/net/ethernet/renesas/ravb_main.c
473
priv->tx_ring[q] = dma_alloc_coherent(ndev->dev.parent, ring_size,
drivers/net/ethernet/renesas/ravb_main.c
476
if (!priv->tx_ring[q])
drivers/net/ethernet/renesas/rswitch.h
964
struct rswitch_ext_desc *tx_ring;
drivers/net/ethernet/renesas/rswitch_main.c
1770
desc = &gq->tx_ring[rswitch_next_queue_index(gq, true, i)];
drivers/net/ethernet/renesas/rswitch_main.c
318
(gq->ring_size + 1), gq->tx_ring, gq->ring_dma);
drivers/net/ethernet/renesas/rswitch_main.c
319
gq->tx_ring = NULL;
drivers/net/ethernet/renesas/rswitch_main.c
365
gq->tx_ring = dma_alloc_coherent(ndev->dev.parent,
drivers/net/ethernet/renesas/rswitch_main.c
370
if (!gq->rx_ring && !gq->tx_ring)
drivers/net/ethernet/renesas/rswitch_main.c
409
memset(gq->tx_ring, 0, ring_size);
drivers/net/ethernet/renesas/rswitch_main.c
410
for (i = 0, desc = gq->tx_ring; i < gq->ring_size; i++, desc++) {
drivers/net/ethernet/renesas/rswitch_main.c
440
for (desc = gq->tx_ring; i-- > 0; desc++) {
drivers/net/ethernet/renesas/rswitch_main.c
899
desc = &gq->tx_ring[gq->dirty];
drivers/net/ethernet/renesas/rswitch_main.c
916
desc = &gq->tx_ring[gq->dirty];
drivers/net/ethernet/renesas/rtsn.c
1077
desc = &priv->tx_ring[entry];
drivers/net/ethernet/renesas/rtsn.c
117
desc = &priv->tx_ring[entry];
drivers/net/ethernet/renesas/rtsn.c
147
desc = &priv->tx_ring[priv->num_tx_ring];
drivers/net/ethernet/renesas/rtsn.c
328
priv->tx_ring, priv->tx_desc_dma);
drivers/net/ethernet/renesas/rtsn.c
329
priv->tx_ring = NULL;
drivers/net/ethernet/renesas/rtsn.c
367
priv->tx_ring = dma_alloc_coherent(ndev->dev.parent,
drivers/net/ethernet/renesas/rtsn.c
374
if (!priv->tx_ring || !priv->rx_ring)
drivers/net/ethernet/renesas/rtsn.c
399
memset(priv->tx_ring, 0, sizeof(*tx_desc) * priv->num_tx_ring);
drivers/net/ethernet/renesas/rtsn.c
400
for (i = 0, tx_desc = priv->tx_ring; i < priv->num_tx_ring; i++, tx_desc++)
drivers/net/ethernet/renesas/rtsn.c
45
struct rtsn_ext_desc *tx_ring;
drivers/net/ethernet/renesas/sh_eth.c
1241
txdesc = &mdp->tx_ring[entry];
drivers/net/ethernet/renesas/sh_eth.c
1303
if (mdp->tx_ring) {
drivers/net/ethernet/renesas/sh_eth.c
1307
dma_free_coherent(&mdp->pdev->dev, ringsize, mdp->tx_ring,
drivers/net/ethernet/renesas/sh_eth.c
1309
mdp->tx_ring = NULL;
drivers/net/ethernet/renesas/sh_eth.c
1377
memset(mdp->tx_ring, 0, tx_ringsize);
drivers/net/ethernet/renesas/sh_eth.c
1382
txdesc = &mdp->tx_ring[i];
drivers/net/ethernet/renesas/sh_eth.c
1432
mdp->tx_ring = dma_alloc_coherent(&mdp->pdev->dev, tx_ringsize,
drivers/net/ethernet/renesas/sh_eth.c
1434
if (!mdp->tx_ring)
drivers/net/ethernet/renesas/sh_eth.c
1543
mdp->tx_ring[i].status &= ~cpu_to_le32(TD_TACT);
drivers/net/ethernet/renesas/sh_eth.c
2517
txdesc = &mdp->tx_ring[entry];
drivers/net/ethernet/renesas/sh_eth.h
541
struct sh_eth_txdesc *tx_ring;
drivers/net/ethernet/rocker/rocker.h
48
struct rocker_dma_ring_info tx_ring;
drivers/net/ethernet/rocker/rocker_main.c
1889
desc_info = rocker_desc_head_get(&rocker_port->tx_ring);
drivers/net/ethernet/rocker/rocker_main.c
1923
rocker_desc_head_set(rocker, &rocker_port->tx_ring, desc_info);
drivers/net/ethernet/rocker/rocker_main.c
1925
desc_info = rocker_desc_head_get(&rocker_port->tx_ring);
drivers/net/ethernet/rocker/rocker_main.c
2384
while ((desc_info = rocker_desc_tail_get(&rocker_port->tx_ring))) {
drivers/net/ethernet/rocker/rocker_main.c
2409
rocker_dma_ring_credits_set(rocker, &rocker_port->tx_ring, credits);
drivers/net/ethernet/rocker/rocker_main.c
793
&rocker_port->tx_ring);
drivers/net/ethernet/rocker/rocker_main.c
799
err = rocker_dma_ring_bufs_alloc(rocker, &rocker_port->tx_ring,
drivers/net/ethernet/rocker/rocker_main.c
839
rocker_dma_ring_bufs_free(rocker, &rocker_port->tx_ring,
drivers/net/ethernet/rocker/rocker_main.c
842
rocker_dma_ring_destroy(rocker, &rocker_port->tx_ring);
drivers/net/ethernet/rocker/rocker_main.c
854
rocker_dma_ring_bufs_free(rocker, &rocker_port->tx_ring,
drivers/net/ethernet/rocker/rocker_main.c
856
rocker_dma_ring_destroy(rocker, &rocker_port->tx_ring);
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
395
struct sxgbe_tx_queue *tx_ring, int tx_rsize)
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
398
if (!tx_ring) {
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
404
tx_ring->dma_tx = dma_alloc_coherent(dev,
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
406
&tx_ring->dma_tx_phy, GFP_KERNEL);
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
407
if (!tx_ring->dma_tx)
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
411
tx_ring->tx_skbuff_dma = devm_kcalloc(dev, tx_rsize,
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
413
if (!tx_ring->tx_skbuff_dma)
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
416
tx_ring->tx_skbuff = devm_kcalloc(dev, tx_rsize,
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
419
if (!tx_ring->tx_skbuff)
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
423
tx_ring->queue_no = queue_no;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
426
tx_ring->dirty_tx = 0;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
427
tx_ring->cur_tx = 0;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
433
tx_ring->dma_tx, tx_ring->dma_tx_phy);
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
545
static void free_tx_ring(struct device *dev, struct sxgbe_tx_queue *tx_ring,
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
549
tx_ring->dma_tx, tx_ring->dma_tx_phy);
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
819
struct sxgbe_tx_queue *tx_ring = priv->txq[queue_num];
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
830
tx_free_ring_skbufs(tx_ring);
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
833
tx_ring->cur_tx = 0;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
834
tx_ring->dirty_tx = 0;
drivers/net/ethernet/sgi/ioc3-eth.c
85
void *tx_ring;
drivers/net/ethernet/sgi/ioc3-eth.c
894
ip->tx_ring = dma_alloc_coherent(ip->dma_dev, TX_RING_SIZE + SZ_16K - 1,
drivers/net/ethernet/sgi/ioc3-eth.c
896
if (!ip->tx_ring) {
drivers/net/ethernet/sgi/ioc3-eth.c
902
ip->txr = PTR_ALIGN(ip->tx_ring, SZ_16K);
drivers/net/ethernet/sgi/ioc3-eth.c
957
if (ip->tx_ring)
drivers/net/ethernet/sgi/ioc3-eth.c
958
dma_free_coherent(ip->dma_dev, TX_RING_SIZE + SZ_16K - 1, ip->tx_ring,
drivers/net/ethernet/sgi/ioc3-eth.c
971
dma_free_coherent(ip->dma_dev, TX_RING_SIZE + SZ_16K - 1, ip->tx_ring, ip->txr_dma);
drivers/net/ethernet/sgi/meth.c
212
priv->tx_ring = dma_alloc_coherent(&priv->pdev->dev,
drivers/net/ethernet/sgi/meth.c
214
if (!priv->tx_ring)
drivers/net/ethernet/sgi/meth.c
253
dma_free_coherent(&priv->pdev->dev, TX_RING_BUFFER_SIZE, priv->tx_ring,
drivers/net/ethernet/sgi/meth.c
491
status = priv->tx_ring[priv->tx_read].header.raw;
drivers/net/ethernet/sgi/meth.c
525
priv->tx_ring[priv->tx_read].header.raw = 0;
drivers/net/ethernet/sgi/meth.c
610
tx_packet *desc = &priv->tx_ring[priv->tx_write];
drivers/net/ethernet/sgi/meth.c
623
tx_packet *desc = &priv->tx_ring[priv->tx_write];
drivers/net/ethernet/sgi/meth.c
648
tx_packet *desc = &priv->tx_ring[priv->tx_write];
drivers/net/ethernet/sgi/meth.c
76
tx_packet *tx_ring;
drivers/net/ethernet/sis/sis900.c
1132
sis_priv->tx_ring[i].link = sis_priv->tx_ring_dma +
drivers/net/ethernet/sis/sis900.c
1134
sis_priv->tx_ring[i].cmdsts = 0;
drivers/net/ethernet/sis/sis900.c
1135
sis_priv->tx_ring[i].bufptr = 0;
drivers/net/ethernet/sis/sis900.c
1564
sis_priv->tx_ring[i].bufptr,
drivers/net/ethernet/sis/sis900.c
1568
sis_priv->tx_ring[i].cmdsts = 0;
drivers/net/ethernet/sis/sis900.c
1569
sis_priv->tx_ring[i].bufptr = 0;
drivers/net/ethernet/sis/sis900.c
1614
sis_priv->tx_ring[entry].bufptr = dma_map_single(&sis_priv->pci_dev->dev,
drivers/net/ethernet/sis/sis900.c
1618
sis_priv->tx_ring[entry].bufptr))) {
drivers/net/ethernet/sis/sis900.c
1625
sis_priv->tx_ring[entry].cmdsts = (OWN | INTR | skb->len);
drivers/net/ethernet/sis/sis900.c
181
BufferDesc *tx_ring;
drivers/net/ethernet/sis/sis900.c
1901
tx_status = sis_priv->tx_ring[entry].cmdsts;
drivers/net/ethernet/sis/sis900.c
1934
sis_priv->tx_ring[entry].bufptr, skb->len,
drivers/net/ethernet/sis/sis900.c
1938
sis_priv->tx_ring[entry].bufptr = 0;
drivers/net/ethernet/sis/sis900.c
1939
sis_priv->tx_ring[entry].cmdsts = 0;
drivers/net/ethernet/sis/sis900.c
1995
sis_priv->tx_ring[i].bufptr,
drivers/net/ethernet/sis/sis900.c
2492
dma_free_coherent(&pci_dev->dev, TX_TOTAL_SIZE, sis_priv->tx_ring,
drivers/net/ethernet/sis/sis900.c
486
sis_priv->tx_ring = ring_space;
drivers/net/ethernet/sis/sis900.c
576
dma_free_coherent(&pci_dev->dev, TX_TOTAL_SIZE, sis_priv->tx_ring,
drivers/net/ethernet/smsc/epic100.c
1021
int txstatus = ep->tx_ring[entry].txstatus;
drivers/net/ethernet/smsc/epic100.c
1036
ep->tx_ring[entry].bufaddr, skb->len,
drivers/net/ethernet/smsc/epic100.c
1308
dma_unmap_single(&pdev->dev, ep->tx_ring[i].bufaddr, skb->len,
drivers/net/ethernet/smsc/epic100.c
1505
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, ep->tx_ring,
drivers/net/ethernet/smsc/epic100.c
246
struct epic_tx_desc *tx_ring;
drivers/net/ethernet/smsc/epic100.c
369
ep->tx_ring = ring_space;
drivers/net/ethernet/smsc/epic100.c
490
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, ep->tx_ring,
drivers/net/ethernet/smsc/epic100.c
926
ep->tx_ring[i].txstatus = 0x0000;
drivers/net/ethernet/smsc/epic100.c
927
ep->tx_ring[i].next = ep->tx_ring_dma +
drivers/net/ethernet/smsc/epic100.c
930
ep->tx_ring[i-1].next = ep->tx_ring_dma;
drivers/net/ethernet/smsc/epic100.c
953
ep->tx_ring[entry].bufaddr = dma_map_single(&ep->pci_dev->dev,
drivers/net/ethernet/smsc/epic100.c
967
ep->tx_ring[entry].buflength = ctrl_word | skb->len;
drivers/net/ethernet/smsc/epic100.c
968
ep->tx_ring[entry].txstatus =
drivers/net/ethernet/smsc/smsc9420.c
1180
BUG_ON(!pd->tx_ring);
drivers/net/ethernet/smsc/smsc9420.c
1190
pd->tx_ring[i].status = 0;
drivers/net/ethernet/smsc/smsc9420.c
1191
pd->tx_ring[i].length = 0;
drivers/net/ethernet/smsc/smsc9420.c
1192
pd->tx_ring[i].buffer1 = 0;
drivers/net/ethernet/smsc/smsc9420.c
1193
pd->tx_ring[i].buffer2 = 0;
drivers/net/ethernet/smsc/smsc9420.c
1195
pd->tx_ring[TX_RING_SIZE - 1].length = TDES1_TER_;
drivers/net/ethernet/smsc/smsc9420.c
1553
pd->tx_ring = (pd->rx_ring + RX_RING_SIZE);
drivers/net/ethernet/smsc/smsc9420.c
1634
BUG_ON(!pd->tx_ring);
drivers/net/ethernet/smsc/smsc9420.c
493
BUG_ON(!pd->tx_ring);
drivers/net/ethernet/smsc/smsc9420.c
509
pd->tx_ring[i].status = 0;
drivers/net/ethernet/smsc/smsc9420.c
51
struct smsc9420_dma_desc *tx_ring;
drivers/net/ethernet/smsc/smsc9420.c
510
pd->tx_ring[i].length = 0;
drivers/net/ethernet/smsc/smsc9420.c
511
pd->tx_ring[i].buffer1 = 0;
drivers/net/ethernet/smsc/smsc9420.c
512
pd->tx_ring[i].buffer2 = 0;
drivers/net/ethernet/smsc/smsc9420.c
897
status = pd->tx_ring[index].status;
drivers/net/ethernet/smsc/smsc9420.c
898
length = pd->tx_ring[index].length;
drivers/net/ethernet/smsc/smsc9420.c
918
pd->tx_ring[index].buffer1 = 0;
drivers/net/ethernet/smsc/smsc9420.c
938
BUG_ON(pd->tx_ring[index].status & TDES0_OWN_);
drivers/net/ethernet/smsc/smsc9420.c
963
pd->tx_ring[index].buffer1 = mapping;
drivers/net/ethernet/smsc/smsc9420.c
964
pd->tx_ring[index].length = tmp_desc1;
drivers/net/ethernet/smsc/smsc9420.c
971
pd->tx_ring[index].status = TDES0_OWN_;
drivers/net/ethernet/socionext/netsec.c
1768
struct netsec_desc_ring *tx_ring = &priv->desc_ring[NETSEC_RING_TX];
drivers/net/ethernet/socionext/netsec.c
1774
spin_lock(&tx_ring->lock);
drivers/net/ethernet/socionext/netsec.c
1783
tx_ring->xdp_xmit++;
drivers/net/ethernet/socionext/netsec.c
1786
spin_unlock(&tx_ring->lock);
drivers/net/ethernet/socionext/netsec.c
1789
netsec_xdp_ring_tx_db(priv, tx_ring->xdp_xmit);
drivers/net/ethernet/socionext/netsec.c
1790
tx_ring->xdp_xmit = 0;
drivers/net/ethernet/socionext/netsec.c
832
struct netsec_desc_ring *tx_ring = &priv->desc_ring[NETSEC_RING_TX];
drivers/net/ethernet/socionext/netsec.c
839
if (tx_ring->head >= tx_ring->tail)
drivers/net/ethernet/socionext/netsec.c
840
filled = tx_ring->head - tx_ring->tail;
drivers/net/ethernet/socionext/netsec.c
842
filled = tx_ring->head + DESC_NUM - tx_ring->tail;
drivers/net/ethernet/socionext/netsec.c
877
netsec_set_tx_de(priv, tx_ring, &tx_ctrl, &tx_desc, xdpf);
drivers/net/ethernet/socionext/netsec.c
884
struct netsec_desc_ring *tx_ring = &priv->desc_ring[NETSEC_RING_TX];
drivers/net/ethernet/socionext/netsec.c
891
spin_lock(&tx_ring->lock);
drivers/net/ethernet/socionext/netsec.c
893
spin_unlock(&tx_ring->lock);
drivers/net/ethernet/spacemit/k1_emac.c
106
struct emac_desc_ring tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
1426
priv->tx_ring.total_cnt = DEFAULT_TX_RING_NUM;
drivers/net/ethernet/spacemit/k1_emac.c
1492
val = (u32)priv->tx_ring.desc_dma_addr;
drivers/net/ethernet/spacemit/k1_emac.c
282
struct emac_desc_ring *tx_ring = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
285
if (tx_ring->tail > tx_ring->head)
drivers/net/ethernet/spacemit/k1_emac.c
286
avail = tx_ring->tail - tx_ring->head - 1;
drivers/net/ethernet/spacemit/k1_emac.c
288
avail = tx_ring->total_cnt - tx_ring->head + tx_ring->tail - 1;
drivers/net/ethernet/spacemit/k1_emac.c
321
struct emac_desc_ring *tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
325
tx_ring = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
326
tx_buf = &tx_ring->tx_desc_buf[i];
drivers/net/ethernet/spacemit/k1_emac.c
354
struct emac_desc_ring *tx_ring = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
357
for (i = 0; i < tx_ring->total_cnt; i++)
drivers/net/ethernet/spacemit/k1_emac.c
360
tx_ring->head = 0;
drivers/net/ethernet/spacemit/k1_emac.c
361
tx_ring->tail = 0;
drivers/net/ethernet/spacemit/k1_emac.c
391
struct emac_desc_ring *tx_ring = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
394
tx_ring->tx_desc_buf = kzalloc_objs(*tx_ring->tx_desc_buf,
drivers/net/ethernet/spacemit/k1_emac.c
395
tx_ring->total_cnt);
drivers/net/ethernet/spacemit/k1_emac.c
397
if (!tx_ring->tx_desc_buf)
drivers/net/ethernet/spacemit/k1_emac.c
400
tx_ring->total_size = tx_ring->total_cnt * sizeof(struct emac_desc);
drivers/net/ethernet/spacemit/k1_emac.c
401
tx_ring->total_size = ALIGN(tx_ring->total_size, PAGE_SIZE);
drivers/net/ethernet/spacemit/k1_emac.c
403
tx_ring->desc_addr = dma_alloc_coherent(&pdev->dev, tx_ring->total_size,
drivers/net/ethernet/spacemit/k1_emac.c
404
&tx_ring->desc_dma_addr,
drivers/net/ethernet/spacemit/k1_emac.c
406
if (!tx_ring->desc_addr) {
drivers/net/ethernet/spacemit/k1_emac.c
407
kfree(tx_ring->tx_desc_buf);
drivers/net/ethernet/spacemit/k1_emac.c
411
tx_ring->head = 0;
drivers/net/ethernet/spacemit/k1_emac.c
412
tx_ring->tail = 0;
drivers/net/ethernet/spacemit/k1_emac.c
447
struct emac_desc_ring *tr = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
478
struct emac_desc_ring *tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
484
tx_ring = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
486
i = tx_ring->tail;
drivers/net/ethernet/spacemit/k1_emac.c
488
while (i != tx_ring->head) {
drivers/net/ethernet/spacemit/k1_emac.c
489
tx_desc = &((struct emac_desc *)tx_ring->desc_addr)[i];
drivers/net/ethernet/spacemit/k1_emac.c
498
if (++i == tx_ring->total_cnt)
drivers/net/ethernet/spacemit/k1_emac.c
502
tx_ring->tail = i;
drivers/net/ethernet/spacemit/k1_emac.c
505
emac_tx_avail(priv) > tx_ring->total_cnt / 4))
drivers/net/ethernet/spacemit/k1_emac.c
732
struct emac_desc_ring *tx_ring = &priv->tx_ring;
drivers/net/ethernet/spacemit/k1_emac.c
740
head = tx_ring->head;
drivers/net/ethernet/spacemit/k1_emac.c
751
tx_buf = &tx_ring->tx_desc_buf[head];
drivers/net/ethernet/spacemit/k1_emac.c
753
&((struct emac_desc *)tx_ring->desc_addr)[head];
drivers/net/ethernet/spacemit/k1_emac.c
764
if (++head == tx_ring->total_cnt) {
drivers/net/ethernet/spacemit/k1_emac.c
792
tx_desc_addr = &((struct emac_desc *)tx_ring->desc_addr)[old_head];
drivers/net/ethernet/spacemit/k1_emac.c
798
tx_ring->head = head;
drivers/net/ethernet/spacemit/k1_emac.c
809
if (++i == tx_ring->total_cnt)
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
167
xlgmac_free_ring(pdata, channel->tx_ring);
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
183
ret = xlgmac_init_ring(pdata, channel->tx_ring,
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
217
kfree(pdata->channel_head->tx_ring);
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
218
pdata->channel_head->tx_ring = NULL;
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
232
struct xlgmac_ring *tx_ring, *rx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
243
tx_ring = kzalloc_objs(struct xlgmac_ring, pdata->tx_ring_count);
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
244
if (!tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
272
channel->tx_ring = tx_ring++;
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
280
channel->tx_ring, channel->rx_ring);
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
291
kfree(tx_ring);
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
429
ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
497
struct xlgmac_ring *ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
1058
struct xlgmac_ring *ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
1385
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
1747
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
1796
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
2476
if (channel->tx_ring) {
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
506
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
540
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
563
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c
705
struct xlgmac_ring *ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
1037
struct xlgmac_ring *ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
216
if (channel->tx_ring && channel->rx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
218
else if (channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
238
if (channel->tx_ring && channel->rx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
240
else if (channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
392
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
406
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
529
ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
605
if (!channel->tx_ring)
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c
718
ring = channel->tx_ring;
drivers/net/ethernet/synopsys/dwc-xlgmac.h
378
struct xlgmac_ring *tx_ring;
drivers/net/ethernet/via/via-rhine.c
1169
rp->tx_ring = ring + RX_RING_SIZE * sizeof(struct rx_desc);
drivers/net/ethernet/via/via-rhine.c
1185
rp->tx_ring = NULL;
drivers/net/ethernet/via/via-rhine.c
1311
rp->tx_ring[i].tx_status = 0;
drivers/net/ethernet/via/via-rhine.c
1312
rp->tx_ring[i].desc_length = cpu_to_le32(TXDESC);
drivers/net/ethernet/via/via-rhine.c
1314
rp->tx_ring[i].next_desc = cpu_to_le32(next);
drivers/net/ethernet/via/via-rhine.c
1318
rp->tx_ring[i-1].next_desc = cpu_to_le32(rp->tx_ring_dma);
drivers/net/ethernet/via/via-rhine.c
1330
rp->tx_ring[i].tx_status = 0;
drivers/net/ethernet/via/via-rhine.c
1331
rp->tx_ring[i].desc_length = cpu_to_le32(TXDESC);
drivers/net/ethernet/via/via-rhine.c
1332
rp->tx_ring[i].addr = cpu_to_le32(0xBADF00D0); /* An invalid address. */
drivers/net/ethernet/via/via-rhine.c
1811
rp->tx_ring[entry].addr = cpu_to_le32(rp->tx_bufs_dma +
drivers/net/ethernet/via/via-rhine.c
1824
rp->tx_ring[entry].addr = cpu_to_le32(rp->tx_skbuff_dma[entry]);
drivers/net/ethernet/via/via-rhine.c
1827
rp->tx_ring[entry].desc_length =
drivers/net/ethernet/via/via-rhine.c
1836
rp->tx_ring[entry].tx_status = cpu_to_le32((vid_pcp) << 16);
drivers/net/ethernet/via/via-rhine.c
1838
rp->tx_ring[entry].desc_length |= cpu_to_le32(0x020000);
drivers/net/ethernet/via/via-rhine.c
1841
rp->tx_ring[entry].tx_status = 0;
drivers/net/ethernet/via/via-rhine.c
1846
rp->tx_ring[entry].tx_status |= cpu_to_le32(DescOwn);
drivers/net/ethernet/via/via-rhine.c
1938
u32 txstatus = le32_to_cpu(rp->tx_ring[entry].tx_status);
drivers/net/ethernet/via/via-rhine.c
1960
rp->tx_ring[entry].tx_status = cpu_to_le32(DescOwn);
drivers/net/ethernet/via/via-rhine.c
2170
if (rp->tx_ring[entry].desc_length & cpu_to_le32(0x020000))
drivers/net/ethernet/via/via-rhine.c
437
struct tx_desc *tx_ring;
drivers/net/ethernet/wangxun/libwx/wx_ethtool.c
156
ring = wx->tx_ring[j];
drivers/net/ethernet/wangxun/libwx/wx_hw.c
2024
wx_configure_tx_ring(wx, wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_hw.c
2874
struct wx_ring *tx_ring = wx->tx_ring[i];
drivers/net/ethernet/wangxun/libwx/wx_hw.c
2876
restart_queue += tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
2877
tx_busy += tx_ring->tx_stats.tx_busy;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1034
static int wx_tx_map(struct wx_ring *tx_ring,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1041
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1049
tx_desc = WX_TX_DESC(tx_ring, i);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1054
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1059
if (dma_mapping_error(tx_ring->dev, dma))
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1074
if (i == tx_ring->count) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1075
tx_desc = WX_TX_DESC(tx_ring, 0);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1093
if (i == tx_ring->count) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1094
tx_desc = WX_TX_DESC(tx_ring, 0);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1103
dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1106
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1113
netdev_tx_sent_queue(wx_txring_txq(tx_ring), first->bytecount);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1132
if (tx_ring->headwb_mem)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1136
if (i == tx_ring->count)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1139
tx_ring->next_to_use = i;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1141
wx_maybe_stop_tx(tx_ring, DESC_NEEDED);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1143
if (netif_xmit_stopped(wx_txring_txq(tx_ring)) || !netdev_xmit_more())
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1144
writel(i, tx_ring->tail);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1148
dev_err(tx_ring->dev, "TX DMA map failed\n");
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1152
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1154
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1162
i += tx_ring->count;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1169
tx_ring->next_to_use = i;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1174
static void wx_tx_ctxtdesc(struct wx_ring *tx_ring, u32 vlan_macip_lens,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1178
u16 i = tx_ring->next_to_use;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1180
context_desc = WX_TX_CTXTDESC(tx_ring, i);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1182
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1308
static int wx_tso(struct wx_ring *tx_ring, struct wx_tx_buffer *first,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1312
struct net_device *netdev = tx_ring->netdev;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1431
wx_tx_ctxtdesc(tx_ring, vlan_macip_lens, tunhdr_eiplen_tunlen,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1437
static void wx_tx_csum(struct wx_ring *tx_ring, struct wx_tx_buffer *first,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1441
struct net_device *netdev = tx_ring->netdev;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1569
wx_tx_ctxtdesc(tx_ring, vlan_macip_lens, tunhdr_eiplen_tunlen,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1574
struct wx_ring *tx_ring)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1576
struct wx *wx = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1594
if (wx_maybe_stop_tx(tx_ring, count + 3)) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1595
tx_ring->tx_stats.tx_busy++;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1600
first = &tx_ring->tx_buffer_info[tx_ring->next_to_use];
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1631
tso = wx_tso(tx_ring, first, &hdr_len, ptype);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1635
wx_tx_csum(tx_ring, first, ptype);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1637
if (test_bit(WX_FLAG_FDIR_CAPABLE, wx->flags) && tx_ring->atr_sample_rate)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1638
wx->atr(tx_ring, first, ptype);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1640
if (wx_tx_map(tx_ring, first, hdr_len))
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1663
struct wx_ring *tx_ring;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1678
tx_ring = wx->tx_ring[r_idx];
drivers/net/ethernet/wangxun/libwx/wx_lib.c
1680
return wx_xmit_frame_ring(skb, tx_ring);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2028
wx->tx_ring[i]->reg_idx = reg_idx;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2040
wx->tx_ring[i]->reg_idx = reg_idx + i;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2064
wx->tx_ring[i]->reg_idx = i;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2154
wx->tx_ring[txr_idx] = ring;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2208
wx->tx_ring[ring->queue_index] = NULL;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2669
static void wx_clean_tx_ring(struct wx_ring *tx_ring)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2672
u16 i = tx_ring->next_to_clean;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2674
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2676
while (i != tx_ring->next_to_use) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2683
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2690
tx_desc = WX_TX_DESC(tx_ring, i);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2697
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2699
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2700
tx_desc = WX_TX_DESC(tx_ring, 0);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2705
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2714
if (unlikely(i == tx_ring->count)) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2716
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2720
netdev_tx_reset_queue(wx_txring_txq(tx_ring));
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2723
tx_ring->next_to_use = 0;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2724
tx_ring->next_to_clean = 0;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2736
wx_clean_tx_ring(wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2740
static void wx_free_headwb_resources(struct wx_ring *tx_ring)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2742
if (!tx_ring->headwb_mem)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2745
dma_free_coherent(tx_ring->dev, sizeof(u32),
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2746
tx_ring->headwb_mem, tx_ring->headwb_dma);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2747
tx_ring->headwb_mem = NULL;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2756
static void wx_free_tx_resources(struct wx_ring *tx_ring)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2758
wx_clean_tx_ring(tx_ring);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2759
kvfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2760
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2763
if (!tx_ring->desc)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2766
dma_free_coherent(tx_ring->dev, tx_ring->size,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2767
tx_ring->desc, tx_ring->dma);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2768
tx_ring->desc = NULL;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2770
wx_free_headwb_resources(tx_ring);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2784
wx_free_tx_resources(wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2910
static void wx_setup_headwb_resources(struct wx_ring *tx_ring)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2912
struct wx *wx = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2917
if (!tx_ring->q_vector)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2920
tx_ring->headwb_mem = dma_alloc_coherent(tx_ring->dev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2922
&tx_ring->headwb_dma,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2924
if (!tx_ring->headwb_mem)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2925
dev_info(tx_ring->dev, "Allocate headwb memory failed, disable it\n");
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2934
static int wx_setup_tx_resources(struct wx_ring *tx_ring)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2936
struct device *dev = tx_ring->dev;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2941
size = sizeof(struct wx_tx_buffer) * tx_ring->count;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2943
if (tx_ring->q_vector)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2944
numa_node = tx_ring->q_vector->numa_node;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2946
tx_ring->tx_buffer_info = kvmalloc_node(size, GFP_KERNEL, numa_node);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2947
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2948
tx_ring->tx_buffer_info = kvmalloc(size, GFP_KERNEL);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2949
if (!tx_ring->tx_buffer_info)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2953
tx_ring->size = tx_ring->count * sizeof(union wx_tx_desc);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2954
tx_ring->size = ALIGN(tx_ring->size, 4096);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2957
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2958
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2959
if (!tx_ring->desc) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2961
tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2962
&tx_ring->dma, GFP_KERNEL);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2965
if (!tx_ring->desc)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2968
wx_setup_headwb_resources(tx_ring);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2970
tx_ring->next_to_use = 0;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2971
tx_ring->next_to_clean = 0;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2976
kvfree(tx_ring->tx_buffer_info);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2977
tx_ring->tx_buffer_info = NULL;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
2997
err = wx_setup_tx_resources(wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
3009
wx_free_tx_resources(wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
3074
struct wx_ring *ring = READ_ONCE(wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
3261
memcpy(&temp_ring[i], wx->tx_ring[i],
drivers/net/ethernet/wangxun/libwx/wx_lib.c
3277
wx_free_tx_resources(wx->tx_ring[i]);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
3279
memcpy(wx->tx_ring[i], &temp_ring[i],
drivers/net/ethernet/wangxun/libwx/wx_lib.c
752
struct wx_ring *tx_ring, int napi_budget)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
756
struct wx *wx = netdev_priv(tx_ring->netdev);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
757
unsigned int i = tx_ring->next_to_clean;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
761
if (!netif_carrier_ok(tx_ring->netdev))
drivers/net/ethernet/wangxun/libwx/wx_lib.c
764
tx_buffer = &tx_ring->tx_buffer_info[i];
drivers/net/ethernet/wangxun/libwx/wx_lib.c
765
tx_desc = WX_TX_DESC(tx_ring, i);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
766
i -= tx_ring->count;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
778
if (tx_ring->headwb_mem) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
779
u32 head = *tx_ring->headwb_mem;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
781
if (head == tx_ring->next_to_clean)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
783
else if (head > tx_ring->next_to_clean &&
drivers/net/ethernet/wangxun/libwx/wx_lib.c
784
!(tx_buffer->next_eop >= tx_ring->next_to_clean &&
drivers/net/ethernet/wangxun/libwx/wx_lib.c
787
else if (!(tx_buffer->next_eop >= tx_ring->next_to_clean ||
drivers/net/ethernet/wangxun/libwx/wx_lib.c
811
dma_unmap_single(tx_ring->dev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
825
i -= tx_ring->count;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
826
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
827
tx_desc = WX_TX_DESC(tx_ring, 0);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
832
dma_unmap_page(tx_ring->dev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
845
i -= tx_ring->count;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
846
tx_buffer = tx_ring->tx_buffer_info;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
847
tx_desc = WX_TX_DESC(tx_ring, 0);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
857
i += tx_ring->count;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
858
tx_ring->next_to_clean = i;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
859
u64_stats_update_begin(&tx_ring->syncp);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
860
tx_ring->stats.bytes += total_bytes;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
861
tx_ring->stats.packets += total_packets;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
862
u64_stats_update_end(&tx_ring->syncp);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
866
netdev_tx_completed_queue(wx_txring_txq(tx_ring),
drivers/net/ethernet/wangxun/libwx/wx_lib.c
870
if (unlikely(total_packets && netif_carrier_ok(tx_ring->netdev) &&
drivers/net/ethernet/wangxun/libwx/wx_lib.c
871
(wx_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD))) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
877
if (__netif_subqueue_stopped(tx_ring->netdev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
878
tx_ring->queue_index) &&
drivers/net/ethernet/wangxun/libwx/wx_lib.c
879
netif_running(tx_ring->netdev)) {
drivers/net/ethernet/wangxun/libwx/wx_lib.c
880
netif_wake_subqueue(tx_ring->netdev,
drivers/net/ethernet/wangxun/libwx/wx_lib.c
881
tx_ring->queue_index);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
882
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/wangxun/libwx/wx_lib.c
974
static int wx_maybe_stop_tx(struct wx_ring *tx_ring, u16 size)
drivers/net/ethernet/wangxun/libwx/wx_lib.c
976
if (likely(wx_desc_unused(tx_ring) >= size))
drivers/net/ethernet/wangxun/libwx/wx_lib.c
979
netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
987
if (likely(wx_desc_unused(tx_ring) < size))
drivers/net/ethernet/wangxun/libwx/wx_lib.c
991
netif_start_subqueue(tx_ring->netdev, tx_ring->queue_index);
drivers/net/ethernet/wangxun/libwx/wx_lib.c
992
++tx_ring->tx_stats.restart_queue;
drivers/net/ethernet/wangxun/libwx/wx_type.h
1325
struct wx_ring *tx_ring[64] ____cacheline_aligned_in_smp;
drivers/net/ethernet/wangxun/libwx/wx_vf_lib.c
168
wx_configure_tx_ring_vf(wx, wx->tx_ring[i]);
drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c
73
wx->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
376
u8 reg_idx = wx->tx_ring[i]->reg_idx;
drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c
65
wx->tx_ring[i]->count = new_tx_count;
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
256
u8 reg_idx = wx->tx_ring[i]->reg_idx;
drivers/net/thunderbolt/main.c
1122
if (tbnet_available_buffers(&net->tx_ring) < nframes) {
drivers/net/thunderbolt/main.c
1219
tb_ring_tx(net->tx_ring.ring, &frames[i]->frame);
drivers/net/thunderbolt/main.c
1234
net->tx_ring.cons -= frame_index;
drivers/net/thunderbolt/main.c
202
struct tbnet_ring tx_ring;
drivers/net/thunderbolt/main.c
394
tb_ring_stop(net->tx_ring.ring);
drivers/net/thunderbolt/main.c
396
tbnet_free_buffers(&net->tx_ring);
drivers/net/thunderbolt/main.c
400
net->tx_ring.ring->hop,
drivers/net/thunderbolt/main.c
551
struct tbnet_ring *ring = &net->tx_ring;
drivers/net/thunderbolt/main.c
577
net->tx_ring.prod++;
drivers/net/thunderbolt/main.c
579
if (tbnet_available_buffers(&net->tx_ring) >= TBNET_RING_SIZE / 2)
drivers/net/thunderbolt/main.c
585
struct tbnet_ring *ring = &net->tx_ring;
drivers/net/thunderbolt/main.c
654
tb_ring_start(net->tx_ring.ring);
drivers/net/thunderbolt/main.c
666
net->tx_ring.ring->hop,
drivers/net/thunderbolt/main.c
681
tbnet_free_buffers(&net->tx_ring);
drivers/net/thunderbolt/main.c
686
tb_ring_stop(net->tx_ring.ring);
drivers/net/thunderbolt/main.c
938
net->tx_ring.ring = ring;
drivers/net/thunderbolt/main.c
943
tb_ring_free(net->tx_ring.ring);
drivers/net/thunderbolt/main.c
944
net->tx_ring.ring = NULL;
drivers/net/thunderbolt/main.c
953
net->tx_ring.ring->hop, sof_mask,
drivers/net/thunderbolt/main.c
958
tb_ring_free(net->tx_ring.ring);
drivers/net/thunderbolt/main.c
959
net->tx_ring.ring = NULL;
drivers/net/thunderbolt/main.c
983
tb_ring_free(net->tx_ring.ring);
drivers/net/thunderbolt/main.c
984
net->tx_ring.ring = NULL;
drivers/net/thunderbolt/main.c
993
struct device *dma_dev = tb_ring_dma_device(net->tx_ring.ring);
drivers/net/tun.c
1063
if (ptr_ring_produce(&tfile->tx_ring, skb)) {
drivers/net/tun.c
1228
spin_lock(&tfile->tx_ring.producer_lock);
drivers/net/tun.c
1236
if (__ptr_ring_produce(&tfile->tx_ring, frame)) {
drivers/net/tun.c
1242
spin_unlock(&tfile->tx_ring.producer_lock);
drivers/net/tun.c
1370
if (!ptr_ring_empty(&tfile->tx_ring))
drivers/net/tun.c
147
struct ptr_ring tx_ring;
drivers/net/tun.c
2122
ptr = ptr_ring_consume(&tfile->tx_ring);
drivers/net/tun.c
2134
ptr = ptr_ring_consume(&tfile->tx_ring);
drivers/net/tun.c
2626
ret = PTR_RING_PEEK_CALL(&tfile->tx_ring, tun_ptr_peek_len);
drivers/net/tun.c
3402
if (ptr_ring_init(&tfile->tx_ring, 0, GFP_KERNEL)) {
drivers/net/tun.c
3614
rings[i] = &tfile->tx_ring;
drivers/net/tun.c
3617
rings[i++] = &tfile->tx_ring;
drivers/net/tun.c
3727
return &tfile->tx_ring;
drivers/net/tun.c
564
while ((ptr = ptr_ring_consume(&tfile->tx_ring)) != NULL)
drivers/net/tun.c
625
ptr_ring_cleanup(&tfile->tx_ring, tun_ptr_free);
drivers/net/tun.c
727
ptr_ring_resize(&tfile->tx_ring, dev->tx_queue_len,
drivers/net/vmxnet3/vmxnet3_drv.c
1073
tq->tx_ring.next2fill *
drivers/net/vmxnet3/vmxnet3_drv.c
1079
ctx->copy_size, tq->tx_ring.next2fill);
drivers/net/vmxnet3/vmxnet3_drv.c
1242
if (count > vmxnet3_cmd_ring_desc_avail(&tq->tx_ring)) {
drivers/net/vmxnet3/vmxnet3_drv.c
1247
tq->tx_ring.next2comp, tq->tx_ring.next2fill);
drivers/net/vmxnet3/vmxnet3_drv.c
1354
tq->tx_ring.base), le64_to_cpu(gdesc->txd.addr),
drivers/net/vmxnet3/vmxnet3_drv.c
1363
tq->tx_ring.next2fill);
drivers/net/vmxnet3/vmxnet3_drv.c
2942
BUG_ON(adapter->tx_queue[i].tx_ring.base == NULL);
drivers/net/vmxnet3/vmxnet3_drv.c
2944
tqc->txRingBasePA = cpu_to_le64(tq->tx_ring.basePA);
drivers/net/vmxnet3/vmxnet3_drv.c
2948
tqc->txRingSize = cpu_to_le32(tq->tx_ring.size);
drivers/net/vmxnet3/vmxnet3_drv.c
3164
adapter->tx_queue[0].tx_ring.size,
drivers/net/vmxnet3/vmxnet3_drv.c
3440
tq->tx_ring.size = tx_ring_size;
drivers/net/vmxnet3/vmxnet3_drv.c
405
BUG_ON(tq->buf_info[eop_idx].sop_idx != tq->tx_ring.next2comp);
drivers/net/vmxnet3/vmxnet3_drv.c
406
BUG_ON(VMXNET3_TXDESC_GET_EOP(&(tq->tx_ring.base[eop_idx].txd)) != 1);
drivers/net/vmxnet3/vmxnet3_drv.c
411
VMXNET3_INC_RING_IDX_ONLY(eop_idx, tq->tx_ring.size);
drivers/net/vmxnet3/vmxnet3_drv.c
413
while (tq->tx_ring.next2comp != eop_idx) {
drivers/net/vmxnet3/vmxnet3_drv.c
414
vmxnet3_unmap_tx_buf(tq->buf_info + tq->tx_ring.next2comp,
drivers/net/vmxnet3/vmxnet3_drv.c
422
vmxnet3_cmd_ring_adv_next2comp(&tq->tx_ring);
drivers/net/vmxnet3/vmxnet3_drv.c
469
vmxnet3_cmd_ring_desc_avail(&tq->tx_ring) >
drivers/net/vmxnet3/vmxnet3_drv.c
491
while (tq->tx_ring.next2comp != tq->tx_ring.next2fill) {
drivers/net/vmxnet3/vmxnet3_drv.c
494
tbi = tq->buf_info + tq->tx_ring.next2comp;
drivers/net/vmxnet3/vmxnet3_drv.c
505
vmxnet3_cmd_ring_adv_next2comp(&tq->tx_ring);
drivers/net/vmxnet3/vmxnet3_drv.c
512
for (i = 0; i < tq->tx_ring.size; i++)
drivers/net/vmxnet3/vmxnet3_drv.c
515
tq->tx_ring.gen = VMXNET3_INIT_GEN;
drivers/net/vmxnet3/vmxnet3_drv.c
516
tq->tx_ring.next2fill = tq->tx_ring.next2comp = 0;
drivers/net/vmxnet3/vmxnet3_drv.c
527
if (tq->tx_ring.base) {
drivers/net/vmxnet3/vmxnet3_drv.c
528
dma_free_coherent(&adapter->pdev->dev, tq->tx_ring.size *
drivers/net/vmxnet3/vmxnet3_drv.c
530
tq->tx_ring.base, tq->tx_ring.basePA);
drivers/net/vmxnet3/vmxnet3_drv.c
531
tq->tx_ring.base = NULL;
drivers/net/vmxnet3/vmxnet3_drv.c
541
tq->tx_ring.size * tq->tx_ts_desc_size,
drivers/net/vmxnet3/vmxnet3_drv.c
574
memset(tq->tx_ring.base, 0, tq->tx_ring.size *
drivers/net/vmxnet3/vmxnet3_drv.c
576
tq->tx_ring.next2fill = tq->tx_ring.next2comp = 0;
drivers/net/vmxnet3/vmxnet3_drv.c
577
tq->tx_ring.gen = VMXNET3_INIT_GEN;
drivers/net/vmxnet3/vmxnet3_drv.c
584
tq->tx_ring.size * tq->tx_ts_desc_size);
drivers/net/vmxnet3/vmxnet3_drv.c
593
memset(tq->buf_info, 0, sizeof(tq->buf_info[0]) * tq->tx_ring.size);
drivers/net/vmxnet3/vmxnet3_drv.c
594
for (i = 0; i < tq->tx_ring.size; i++)
drivers/net/vmxnet3/vmxnet3_drv.c
605
BUG_ON(tq->tx_ring.base || tq->data_ring.base ||
drivers/net/vmxnet3/vmxnet3_drv.c
608
tq->tx_ring.base = dma_alloc_coherent(&adapter->pdev->dev,
drivers/net/vmxnet3/vmxnet3_drv.c
609
tq->tx_ring.size * sizeof(struct Vmxnet3_TxDesc),
drivers/net/vmxnet3/vmxnet3_drv.c
610
&tq->tx_ring.basePA, GFP_KERNEL);
drivers/net/vmxnet3/vmxnet3_drv.c
611
if (!tq->tx_ring.base) {
drivers/net/vmxnet3/vmxnet3_drv.c
626
tq->tx_ring.size * tq->tx_ts_desc_size,
drivers/net/vmxnet3/vmxnet3_drv.c
644
tq->buf_info = kcalloc_node(tq->tx_ring.size, sizeof(tq->buf_info[0]),
drivers/net/vmxnet3/vmxnet3_drv.c
807
dw2 = (tq->tx_ring.gen ^ 0x1) << VMXNET3_TXD_GEN_SHIFT;
drivers/net/vmxnet3/vmxnet3_drv.c
809
ctx->sop_txd = tq->tx_ring.base + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_drv.c
815
tq->tx_ring.next2fill *
drivers/net/vmxnet3/vmxnet3_drv.c
820
tbi = tq->buf_info + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_drv.c
825
tq->tx_ring.next2fill,
drivers/net/vmxnet3/vmxnet3_drv.c
828
vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring);
drivers/net/vmxnet3/vmxnet3_drv.c
831
dw2 = tq->tx_ring.gen << VMXNET3_TXD_GEN_SHIFT;
drivers/net/vmxnet3/vmxnet3_drv.c
848
tbi = tq->buf_info + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_drv.c
858
gdesc = tq->tx_ring.base + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_drv.c
859
BUG_ON(gdesc->txd.gen == tq->tx_ring.gen);
drivers/net/vmxnet3/vmxnet3_drv.c
867
tq->tx_ring.next2fill, le64_to_cpu(gdesc->txd.addr),
drivers/net/vmxnet3/vmxnet3_drv.c
869
vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring);
drivers/net/vmxnet3/vmxnet3_drv.c
870
dw2 = tq->tx_ring.gen << VMXNET3_TXD_GEN_SHIFT;
drivers/net/vmxnet3/vmxnet3_drv.c
883
tbi = tq->buf_info + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_drv.c
900
gdesc = tq->tx_ring.base + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_drv.c
901
BUG_ON(gdesc->txd.gen == tq->tx_ring.gen);
drivers/net/vmxnet3/vmxnet3_drv.c
909
tq->tx_ring.next2fill, le64_to_cpu(gdesc->txd.addr),
drivers/net/vmxnet3/vmxnet3_drv.c
911
vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring);
drivers/net/vmxnet3/vmxnet3_drv.c
912
dw2 = tq->tx_ring.gen << VMXNET3_TXD_GEN_SHIFT;
drivers/net/vmxnet3/vmxnet3_drv.c
923
tbi->sop_idx = ctx->sop_txd - tq->tx_ring.base;
drivers/net/vmxnet3/vmxnet3_ethtool.c
555
buf[j++] = VMXNET3_GET_ADDR_LO(tq->tx_ring.basePA);
drivers/net/vmxnet3/vmxnet3_ethtool.c
556
buf[j++] = VMXNET3_GET_ADDR_HI(tq->tx_ring.basePA);
drivers/net/vmxnet3/vmxnet3_ethtool.c
557
buf[j++] = tq->tx_ring.size;
drivers/net/vmxnet3/vmxnet3_ethtool.c
558
buf[j++] = tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_ethtool.c
559
buf[j++] = tq->tx_ring.next2comp;
drivers/net/vmxnet3/vmxnet3_ethtool.c
560
buf[j++] = tq->tx_ring.gen;
drivers/net/vmxnet3/vmxnet3_int.h
260
struct vmxnet3_cmd_ring tx_ring;
drivers/net/vmxnet3/vmxnet3_xdp.c
128
dw2 = (tq->tx_ring.gen ^ 0x1) << VMXNET3_TXD_GEN_SHIFT;
drivers/net/vmxnet3/vmxnet3_xdp.c
130
ctx.sop_txd = tq->tx_ring.base + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_xdp.c
134
tbi = tq->buf_info + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_xdp.c
136
if (vmxnet3_cmd_ring_desc_avail(&tq->tx_ring) == 0) {
drivers/net/vmxnet3/vmxnet3_xdp.c
163
gdesc = tq->tx_ring.base + tq->tx_ring.next2fill;
drivers/net/vmxnet3/vmxnet3_xdp.c
164
WARN_ON_ONCE(gdesc->txd.gen == tq->tx_ring.gen);
drivers/net/vmxnet3/vmxnet3_xdp.c
181
vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring);
drivers/net/vmxnet3/vmxnet3_xdp.c
184
tbi->sop_idx = ctx.sop_txd - tq->tx_ring.base;
drivers/net/vmxnet3/vmxnet3_xdp.c
199
tq->tx_ring.next2fill);
drivers/net/wireless/admtek/adm8211.c
1466
desc = &priv->tx_ring[i];
drivers/net/wireless/admtek/adm8211.c
1651
priv->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
drivers/net/wireless/admtek/adm8211.c
1655
priv->tx_ring[entry].length = cpu_to_le32(flag | skb->len);
drivers/net/wireless/admtek/adm8211.c
1659
priv->tx_ring[entry].status = cpu_to_le32(flag);
drivers/net/wireless/admtek/adm8211.c
1754
priv->tx_ring = priv->rx_ring + priv->rx_ring_size;
drivers/net/wireless/admtek/adm8211.c
311
u32 status = le32_to_cpu(priv->tx_ring[entry].status);
drivers/net/wireless/admtek/adm8211.h
542
struct adm8211_desc *tx_ring;
drivers/net/wireless/ath/ath11k/dp.c
1039
spin_lock_bh(&dp->tx_ring[i].tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp.c
1040
idr_for_each(&dp->tx_ring[i].txbuf_idr,
drivers/net/wireless/ath/ath11k/dp.c
1042
idr_destroy(&dp->tx_ring[i].txbuf_idr);
drivers/net/wireless/ath/ath11k/dp.c
1043
spin_unlock_bh(&dp->tx_ring[i].tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp.c
1044
kfree(dp->tx_ring[i].tx_status);
drivers/net/wireless/ath/ath11k/dp.c
1090
idr_init(&dp->tx_ring[i].txbuf_idr);
drivers/net/wireless/ath/ath11k/dp.c
1091
spin_lock_init(&dp->tx_ring[i].tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp.c
1092
dp->tx_ring[i].tcl_data_ring_id = i;
drivers/net/wireless/ath/ath11k/dp.c
1094
dp->tx_ring[i].tx_status_head = 0;
drivers/net/wireless/ath/ath11k/dp.c
1095
dp->tx_ring[i].tx_status_tail = DP_TX_COMP_RING_SIZE - 1;
drivers/net/wireless/ath/ath11k/dp.c
1096
dp->tx_ring[i].tx_status = kmalloc(size, GFP_KERNEL);
drivers/net/wireless/ath/ath11k/dp.c
1097
if (!dp->tx_ring[i].tx_status) {
drivers/net/wireless/ath/ath11k/dp.c
363
ath11k_dp_srng_cleanup(ab, &dp->tx_ring[i].tcl_data_ring);
drivers/net/wireless/ath/ath11k/dp.c
364
ath11k_dp_srng_cleanup(ab, &dp->tx_ring[i].tcl_comp_ring);
drivers/net/wireless/ath/ath11k/dp.c
407
ret = ath11k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_data_ring,
drivers/net/wireless/ath/ath11k/dp.c
416
ret = ath11k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_comp_ring,
drivers/net/wireless/ath/ath11k/dp.c
425
srng = &ab->hal.srng_list[dp->tx_ring[i].tcl_data_ring.ring_id];
drivers/net/wireless/ath/ath11k/dp.c
430
dp->tx_ring[i].tcl_data_ring.ring_id);
drivers/net/wireless/ath/ath11k/dp.h
274
struct dp_tx_ring tx_ring[DP_TCL_NUM_RING_MAX];
drivers/net/wireless/ath/ath11k/dp_tx.c
122
tx_ring = &dp->tx_ring[ti.ring_id];
drivers/net/wireless/ath/ath11k/dp_tx.c
124
spin_lock_bh(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
125
ret = idr_alloc(&tx_ring->txbuf_idr, skb, 0,
drivers/net/wireless/ath/ath11k/dp_tx.c
127
spin_unlock_bh(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
226
hal_ring_id = tx_ring->tcl_data_ring.ring_id;
drivers/net/wireless/ath/ath11k/dp_tx.c
277
spin_lock_bh(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
278
idr_remove(&tx_ring->txbuf_idr,
drivers/net/wireless/ath/ath11k/dp_tx.c
280
spin_unlock_bh(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
290
struct dp_tx_ring *tx_ring)
drivers/net/wireless/ath/ath11k/dp_tx.c
296
spin_lock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
297
msdu = idr_remove(&tx_ring->txbuf_idr, msdu_id);
drivers/net/wireless/ath/ath11k/dp_tx.c
298
spin_unlock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
318
struct dp_tx_ring *tx_ring,
drivers/net/wireless/ath/ath11k/dp_tx.c
328
spin_lock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
329
msdu = idr_remove(&tx_ring->txbuf_idr, ts->msdu_id);
drivers/net/wireless/ath/ath11k/dp_tx.c
330
spin_unlock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
393
u32 msdu_id, struct dp_tx_ring *tx_ring)
drivers/net/wireless/ath/ath11k/dp_tx.c
418
ath11k_dp_tx_htt_tx_complete_buf(ab, tx_ring, &ts);
drivers/net/wireless/ath/ath11k/dp_tx.c
423
ath11k_dp_tx_free_txbuf(ab, mac_id, msdu_id, tx_ring);
drivers/net/wireless/ath/ath11k/dp_tx.c
692
int hal_ring_id = dp->tx_ring[ring_id].tcl_comp_ring.ring_id;
drivers/net/wireless/ath/ath11k/dp_tx.c
696
struct dp_tx_ring *tx_ring = &dp->tx_ring[ring_id];
drivers/net/wireless/ath/ath11k/dp_tx.c
705
while ((ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_head) !=
drivers/net/wireless/ath/ath11k/dp_tx.c
706
tx_ring->tx_status_tail) &&
drivers/net/wireless/ath/ath11k/dp_tx.c
708
memcpy(&tx_ring->tx_status[tx_ring->tx_status_head],
drivers/net/wireless/ath/ath11k/dp_tx.c
710
tx_ring->tx_status_head =
drivers/net/wireless/ath/ath11k/dp_tx.c
711
ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_head);
drivers/net/wireless/ath/ath11k/dp_tx.c
715
(ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_head) ==
drivers/net/wireless/ath/ath11k/dp_tx.c
716
tx_ring->tx_status_tail))) {
drivers/net/wireless/ath/ath11k/dp_tx.c
725
while (ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_tail) != tx_ring->tx_status_head) {
drivers/net/wireless/ath/ath11k/dp_tx.c
729
tx_ring->tx_status_tail =
drivers/net/wireless/ath/ath11k/dp_tx.c
730
ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_tail);
drivers/net/wireless/ath/ath11k/dp_tx.c
731
tx_status = &tx_ring->tx_status[tx_ring->tx_status_tail];
drivers/net/wireless/ath/ath11k/dp_tx.c
743
tx_ring);
drivers/net/wireless/ath/ath11k/dp_tx.c
747
spin_lock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
748
msdu = idr_remove(&tx_ring->txbuf_idr, msdu_id);
drivers/net/wireless/ath/ath11k/dp_tx.c
752
spin_unlock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
756
spin_unlock(&tx_ring->tx_idr_lock);
drivers/net/wireless/ath/ath11k/dp_tx.c
93
struct dp_tx_ring *tx_ring;
drivers/net/wireless/ath/ath11k/mac.c
7411
spin_lock_bh(&ab->dp.tx_ring[i].tx_idr_lock);
drivers/net/wireless/ath/ath11k/mac.c
7412
idr_for_each(&ab->dp.tx_ring[i].txbuf_idr,
drivers/net/wireless/ath/ath11k/mac.c
7414
spin_unlock_bh(&ab->dp.tx_ring[i].tx_idr_lock);
drivers/net/wireless/ath/ath12k/dp.c
1139
kfree(dp->tx_ring[i].tx_status);
drivers/net/wireless/ath/ath12k/dp.c
1140
dp->tx_ring[i].tx_status = NULL;
drivers/net/wireless/ath/ath12k/dp.c
1544
dp->tx_ring[i].tcl_data_ring_id = i;
drivers/net/wireless/ath/ath12k/dp.c
1546
dp->tx_ring[i].tx_status_head = 0;
drivers/net/wireless/ath/ath12k/dp.c
1547
dp->tx_ring[i].tx_status_tail = DP_TX_COMP_RING_SIZE(ab) - 1;
drivers/net/wireless/ath/ath12k/dp.c
1548
dp->tx_ring[i].tx_status = kmalloc(size, GFP_KERNEL);
drivers/net/wireless/ath/ath12k/dp.c
1549
if (!dp->tx_ring[i].tx_status) {
drivers/net/wireless/ath/ath12k/dp.c
436
ath12k_dp_srng_cleanup(ab, &dp->tx_ring[i].tcl_comp_ring);
drivers/net/wireless/ath/ath12k/dp.c
437
ath12k_dp_srng_cleanup(ab, &dp->tx_ring[i].tcl_data_ring);
drivers/net/wireless/ath/ath12k/dp.c
463
ret = ath12k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_data_ring,
drivers/net/wireless/ath/ath12k/dp.c
472
ret = ath12k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_comp_ring,
drivers/net/wireless/ath/ath12k/dp.h
476
struct dp_tx_ring tx_ring[DP_TCL_NUM_RING_MAX];
drivers/net/wireless/ath/ath12k/dp_tx.c
187
struct dp_tx_ring *tx_ring,
drivers/net/wireless/ath/ath12k/dp_tx.h
30
struct dp_tx_ring *tx_ring,
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
117
tx_ring = &dp->tx_ring[ti.ring_id];
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
303
hal_ring_id = tx_ring->tcl_data_ring.ring_id;
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
387
struct dp_tx_ring *tx_ring,
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
416
dp->device_stats.tx_completed[tx_ring->tcl_data_ring_id]++;
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
482
struct dp_tx_ring *tx_ring,
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
505
ath12k_dp_tx_htt_tx_complete_buf(dp, desc_params, tx_ring, &ts, peer_id);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
512
ath12k_dp_tx_free_txbuf(dp, tx_ring, desc_params);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
80
struct dp_tx_ring *tx_ring;
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
823
int hal_ring_id = dp->tx_ring[ring_id].tcl_comp_ring.ring_id;
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
828
struct dp_tx_ring *tx_ring = &dp->tx_ring[ring_id];
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
839
while (ATH12K_TX_COMPL_NEXT(ab, tx_ring->tx_status_head) !=
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
840
tx_ring->tx_status_tail) {
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
845
memcpy(&tx_ring->tx_status[tx_ring->tx_status_head],
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
847
tx_ring->tx_status_head =
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
848
ATH12K_TX_COMPL_NEXT(ab, tx_ring->tx_status_head);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
852
(ATH12K_TX_COMPL_NEXT(ab, tx_ring->tx_status_head) ==
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
853
tx_ring->tx_status_tail)) {
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
862
while (ATH12K_TX_COMPL_NEXT(ab, tx_ring->tx_status_tail) !=
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
863
tx_ring->tx_status_head) {
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
867
tx_ring->tx_status_tail =
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
868
ATH12K_TX_COMPL_NEXT(ab, tx_ring->tx_status_tail);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
869
tx_status = &tx_ring->tx_status[tx_ring->tx_status_tail];
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
908
tx_ring, &desc_params);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
926
tx_ring->tcl_data_ring_id);
drivers/net/wireless/mediatek/mt76/wed.c
116
q->wed_regs = q->wed->tx_ring[ring].reg_base;
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1086
priv->tx_ring[prio].desc = ring;
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1087
priv->tx_ring[prio].dma = dma;
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1088
priv->tx_ring[prio].idx = 0;
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1089
priv->tx_ring[prio].entries = entries;
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1090
skb_queue_head_init(&priv->tx_ring[prio].queue);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1102
struct rtl8180_tx_ring *ring = &priv->tx_ring[prio];
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
1241
if (priv->tx_ring[i].desc)
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
345
struct rtl8180_tx_ring *ring = &priv->tx_ring[prio];
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
478
ring = &priv->tx_ring[prio];
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
866
priv->tx_ring[1].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
868
priv->tx_ring[0].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
871
priv->tx_ring[4].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
873
priv->tx_ring[0].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
875
priv->tx_ring[1].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
877
priv->tx_ring[2].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
879
priv->tx_ring[3].dma);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8180.h
118
struct rtl8180_tx_ring tx_ring[RTL818X_NR_TX_QUEUES];
drivers/net/wireless/realtek/rtlwifi/core.c
1848
ring = &rtlpci->tx_ring[BEACON_QUEUE];
drivers/net/wireless/realtek/rtlwifi/pci.c
1022
ring = &rtlpci->tx_ring[BEACON_QUEUE];
drivers/net/wireless/realtek/rtlwifi/pci.c
1162
rtlpci->tx_ring[prio].buffer_desc = buffer_desc;
drivers/net/wireless/realtek/rtlwifi/pci.c
1163
rtlpci->tx_ring[prio].buffer_desc_dma = buffer_desc_dma;
drivers/net/wireless/realtek/rtlwifi/pci.c
1165
rtlpci->tx_ring[prio].cur_tx_rp = 0;
drivers/net/wireless/realtek/rtlwifi/pci.c
1166
rtlpci->tx_ring[prio].cur_tx_wp = 0;
drivers/net/wireless/realtek/rtlwifi/pci.c
1178
rtlpci->tx_ring[prio].desc = desc;
drivers/net/wireless/realtek/rtlwifi/pci.c
1179
rtlpci->tx_ring[prio].dma = desc_dma;
drivers/net/wireless/realtek/rtlwifi/pci.c
1181
rtlpci->tx_ring[prio].idx = 0;
drivers/net/wireless/realtek/rtlwifi/pci.c
1182
rtlpci->tx_ring[prio].entries = entries;
drivers/net/wireless/realtek/rtlwifi/pci.c
1183
skb_queue_head_init(&rtlpci->tx_ring[prio].queue);
drivers/net/wireless/realtek/rtlwifi/pci.c
1268
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio];
drivers/net/wireless/realtek/rtlwifi/pci.c
1364
if (rtlpci->tx_ring[i].desc ||
drivers/net/wireless/realtek/rtlwifi/pci.c
1365
rtlpci->tx_ring[i].buffer_desc)
drivers/net/wireless/realtek/rtlwifi/pci.c
1445
if (rtlpci->tx_ring[i].desc ||
drivers/net/wireless/realtek/rtlwifi/pci.c
1446
rtlpci->tx_ring[i].buffer_desc) {
drivers/net/wireless/realtek/rtlwifi/pci.c
1447
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[i];
drivers/net/wireless/realtek/rtlwifi/pci.c
1468
rtlpci->tx_ring[i].cur_tx_rp = 0;
drivers/net/wireless/realtek/rtlwifi/pci.c
1469
rtlpci->tx_ring[i].cur_tx_wp = 0;
drivers/net/wireless/realtek/rtlwifi/pci.c
1559
ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/pci.c
1650
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/pci.c
418
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/pci.c
455
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio];
drivers/net/wireless/realtek/rtlwifi/pci.h
162
struct rtl8192_tx_ring tx_ring[RTL_PCI_MAX_TX_QUEUE_COUNT];
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
189
ring = &rtlpci->tx_ring[queue];
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
70
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[BEACON_QUEUE];
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
889
((u64) rtlpci->tx_ring[BEACON_QUEUE].dma) &
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
892
(u64) rtlpci->tx_ring[MGNT_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
895
(u64) rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
897
(u64) rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
899
(u64) rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
901
(u64) rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
903
(u64) rtlpci->tx_ring[HIGH_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
2197
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
2241
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
810
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
732
((u64) rtlpci->tx_ring[BEACON_QUEUE].dma) &
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
735
(u64) rtlpci->tx_ring[MGNT_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
738
(u64) rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
740
(u64) rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
742
(u64) rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
744
(u64) rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
746
(u64) rtlpci->tx_ring[HIGH_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
464
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
662
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
418
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
461
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
123
ring = &rtlpci->tx_ring[BEACON_QUEUE];
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
467
rtlpci->tx_ring[BEACON_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
468
rtl_write_dword(rtlpriv, REG_MGQ_DESA, rtlpci->tx_ring[MGNT_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
469
rtl_write_dword(rtlpriv, REG_VOQ_DESA, rtlpci->tx_ring[VO_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
470
rtl_write_dword(rtlpriv, REG_VIQ_DESA, rtlpci->tx_ring[VI_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
471
rtl_write_dword(rtlpriv, REG_BEQ_DESA, rtlpci->tx_ring[BE_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
472
rtl_write_dword(rtlpriv, REG_BKQ_DESA, rtlpci->tx_ring[BK_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
473
rtl_write_dword(rtlpriv, REG_HQ_DESA, rtlpci->tx_ring[HIGH_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
2405
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
293
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
164
ring = &rtlpci->tx_ring[queue];
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
826
((u64)rtlpci->tx_ring[BEACON_QUEUE].buffer_desc_dma) >>
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
829
(u64)rtlpci->tx_ring[MGNT_QUEUE].buffer_desc_dma >> 32);
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
831
(u64)rtlpci->tx_ring[VO_QUEUE].buffer_desc_dma >> 32);
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
833
(u64)rtlpci->tx_ring[VI_QUEUE].buffer_desc_dma >> 32);
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
835
(u64)rtlpci->tx_ring[BE_QUEUE].buffer_desc_dma >> 32);
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
837
(u64)rtlpci->tx_ring[BK_QUEUE].buffer_desc_dma >> 32);
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
839
(u64)rtlpci->tx_ring[HIGH_QUEUE].buffer_desc_dma >> 32);
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
848
((u64)rtlpci->tx_ring[BEACON_QUEUE].buffer_desc_dma) &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
851
(u64)rtlpci->tx_ring[MGNT_QUEUE].buffer_desc_dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
854
(u64)rtlpci->tx_ring[VO_QUEUE].buffer_desc_dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
857
(u64)rtlpci->tx_ring[VI_QUEUE].buffer_desc_dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
861
(u64)rtlpci->tx_ring[BE_QUEUE].buffer_desc_dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
867
(u64)rtlpci->tx_ring[BK_QUEUE].buffer_desc_dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
870
(u64)rtlpci->tx_ring[HIGH_QUEUE].buffer_desc_dma &
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
3070
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
3114
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
1000
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
577
current_bd_desc = rtlpci->tx_ring[queue_index].cur_tx_wp;
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
597
desc_dma_addr = rtlpci->tx_ring[queue_index].dma +
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
900
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[q_idx];
drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c
119
ring = &rtlpci->tx_ring[TXCMD_QUEUE];
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
699
rtl_write_dword(rtlpriv, TBKDA, rtlpci->tx_ring[BK_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
700
rtl_write_dword(rtlpriv, TBEDA, rtlpci->tx_ring[BE_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
701
rtl_write_dword(rtlpriv, TVIDA, rtlpci->tx_ring[VI_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
702
rtl_write_dword(rtlpriv, TVODA, rtlpci->tx_ring[VO_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
703
rtl_write_dword(rtlpriv, TBDA, rtlpci->tx_ring[BEACON_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
704
rtl_write_dword(rtlpriv, TCDA, rtlpci->tx_ring[TXCMD_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
705
rtl_write_dword(rtlpriv, TMDA, rtlpci->tx_ring[MGNT_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
706
rtl_write_dword(rtlpriv, THPDA, rtlpci->tx_ring[HIGH_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
707
rtl_write_dword(rtlpriv, HDA, rtlpci->tx_ring[HCCA_QUEUE].dma);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
567
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
215
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
732
((u64) rtlpci->tx_ring[BEACON_QUEUE].dma) &
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
735
(u64) rtlpci->tx_ring[MGNT_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
738
(u64) rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
740
(u64) rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
742
(u64) rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
744
(u64) rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
746
(u64) rtlpci->tx_ring[HIGH_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
1613
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c
664
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
192
ring = &rtlpci->tx_ring[queue];
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
32
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[BEACON_QUEUE];
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
881
((u64) rtlpci->tx_ring[BEACON_QUEUE].dma) &
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
884
(u64) rtlpci->tx_ring[MGNT_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
887
(u64) rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
889
(u64) rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
891
(u64) rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
893
(u64) rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
895
(u64) rtlpci->tx_ring[HIGH_QUEUE].dma &
drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
2555
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
2604
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c
721
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1425
rtlpci->tx_ring[BEACON_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1427
rtlpci->tx_ring[MGNT_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1429
rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1431
rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1433
rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1435
rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
1437
rtlpci->tx_ring[HIGH_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
190
ring = &rtlpci->tx_ring[queue];
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
28
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[BEACON_QUEUE];
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
975
rtlpci->tx_ring[BEACON_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
977
rtlpci->tx_ring[MGNT_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
979
rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
981
rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
983
rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
985
rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
987
rtlpci->tx_ring[HIGH_QUEUE].dma & DMA_BIT_MASK(32));
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
4726
ring = &pcipriv->dev.tx_ring[queue_id];
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
966
struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
drivers/net/wireless/realtek/rtw88/pci.c
102
skb_queue_walk_safe(&tx_ring->queue, skb, tmp) {
drivers/net/wireless/realtek/rtw88/pci.c
103
__skb_unlink(skb, &tx_ring->queue);
drivers/net/wireless/realtek/rtw88/pci.c
113
struct rtw_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw88/pci.c
116
u8 *head = tx_ring->r.head;
drivers/net/wireless/realtek/rtw88/pci.c
117
u32 len = tx_ring->r.len;
drivers/net/wireless/realtek/rtw88/pci.c
118
int ring_sz = len * tx_ring->r.desc_size;
drivers/net/wireless/realtek/rtw88/pci.c
120
rtw_pci_free_tx_ring_skbs(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw88/pci.c
123
dma_free_coherent(&pdev->dev, ring_sz, head, tx_ring->r.dma);
drivers/net/wireless/realtek/rtw88/pci.c
124
tx_ring->r.head = NULL;
drivers/net/wireless/realtek/rtw88/pci.c
163
struct rtw_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw88/pci.c
168
tx_ring = &rtwpci->tx_rings[i];
drivers/net/wireless/realtek/rtw88/pci.c
169
rtw_pci_free_tx_ring(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw88/pci.c
179
struct rtw_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw88/pci.c
198
skb_queue_head_init(&tx_ring->queue);
drivers/net/wireless/realtek/rtw88/pci.c
199
tx_ring->r.head = head;
drivers/net/wireless/realtek/rtw88/pci.c
200
tx_ring->r.dma = dma;
drivers/net/wireless/realtek/rtw88/pci.c
201
tx_ring->r.len = len;
drivers/net/wireless/realtek/rtw88/pci.c
202
tx_ring->r.desc_size = desc_size;
drivers/net/wireless/realtek/rtw88/pci.c
203
tx_ring->r.wp = 0;
drivers/net/wireless/realtek/rtw88/pci.c
204
tx_ring->r.rp = 0;
drivers/net/wireless/realtek/rtw88/pci.c
318
struct rtw_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw88/pci.c
329
tx_ring = &rtwpci->tx_rings[i];
drivers/net/wireless/realtek/rtw88/pci.c
331
ret = rtw_pci_init_tx_ring(rtwdev, tx_ring, tx_desc_size, len);
drivers/net/wireless/realtek/rtw88/pci.c
351
tx_ring = &rtwpci->tx_rings[i];
drivers/net/wireless/realtek/rtw88/pci.c
352
rtw_pci_free_tx_ring(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw88/pci.c
539
struct rtw_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw88/pci.c
544
tx_ring = &rtwpci->tx_rings[queue];
drivers/net/wireless/realtek/rtw88/pci.c
545
rtw_pci_free_tx_ring_skbs(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw88/pci.c
605
struct rtw_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw88/pci.c
623
tx_ring = &rtwpci->tx_rings[queue];
drivers/net/wireless/realtek/rtw88/pci.c
626
if (skb_queue_len(&tx_ring->queue)) {
drivers/net/wireless/realtek/rtw88/pci.c
94
struct rtw_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
1237
struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx.rings[RTW89_TXCH_CH12];
drivers/net/wireless/realtek/rtw89/pci.c
1242
cnt = rtw89_pci_get_avail_txbd_num(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1253
struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx.rings[txch];
drivers/net/wireless/realtek/rtw89/pci.c
1254
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1258
cnt = rtw89_pci_get_avail_txbd_num(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1270
struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx.rings[txch];
drivers/net/wireless/realtek/rtw89/pci.c
1271
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1281
bd_cnt = rtw89_pci_get_avail_txbd_num(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1291
bd_cnt = rtw89_pci_get_avail_txbd_num(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1293
rtw89_pci_reclaim_txbd(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1296
bd_cnt = rtw89_pci_get_avail_txbd_num(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1332
static void __rtw89_pci_tx_kick_off(struct rtw89_dev *rtwdev, struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
1335
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1347
static void rtw89_pci_tx_bd_ring_update(struct rtw89_dev *rtwdev, struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
1350
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1363
struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx.rings[txch];
drivers/net/wireless/realtek/rtw89/pci.c
137
struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx.rings[RTW89_TXCH_CH12];
drivers/net/wireless/realtek/rtw89/pci.c
1370
__rtw89_pci_tx_kick_off(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1376
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1383
tx_ring = &rtwpci->tx.rings[txch];
drivers/net/wireless/realtek/rtw89/pci.c
1384
__rtw89_pci_tx_kick_off(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1391
struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx.rings[txch];
drivers/net/wireless/realtek/rtw89/pci.c
1392
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
140
cnt = rtw89_pci_txbd_recalc(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1495
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
1533
tx_ring->tx_cnt++;
drivers/net/wireless/realtek/rtw89/pci.c
1552
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
1585
rtw89_pci_tx_bd_ring_update(rtwdev, tx_ring, 1);
drivers/net/wireless/realtek/rtw89/pci.c
1591
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
1603
if (tx_ring->txch == RTW89_TXCH_CH12)
drivers/net/wireless/realtek/rtw89/pci.c
1604
return rtw89_pci_fwcmd_submit(rtwdev, tx_ring, txbd, tx_req);
drivers/net/wireless/realtek/rtw89/pci.c
1606
txwd = rtw89_pci_dequeue_txwd(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1613
ret = rtw89_pci_txwd_submit(rtwdev, tx_ring, txwd, tx_req);
drivers/net/wireless/realtek/rtw89/pci.c
1619
list_add_tail(&txwd->list, &tx_ring->busy_pages);
drivers/net/wireless/realtek/rtw89/pci.c
1627
rtw89_pci_tx_bd_ring_update(rtwdev, tx_ring, 1);
drivers/net/wireless/realtek/rtw89/pci.c
1632
rtw89_pci_enqueue_txwd(tx_ring, txwd);
drivers/net/wireless/realtek/rtw89/pci.c
1641
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1655
tx_ring = &rtwpci->tx.rings[txch];
drivers/net/wireless/realtek/rtw89/pci.c
1658
n_avail_txbd = rtw89_pci_get_avail_txbd_num(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1665
txbd = rtw89_pci_get_next_txbd(tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1666
ret = rtw89_pci_txbd_submit(rtwdev, tx_ring, txbd, tx_req);
drivers/net/wireless/realtek/rtw89/pci.c
1781
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1798
tx_ring = &rtwpci->tx.rings[i];
drivers/net/wireless/realtek/rtw89/pci.c
1799
bd_ring = &tx_ring->bd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1872
struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
1874
rtw89_pci_release_busy_txwd(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1875
rtw89_pci_release_pending_txwd_skb(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
1963
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
1971
tx_ring = &rtwpci->tx.rings[i];
drivers/net/wireless/realtek/rtw89/pci.c
1972
tx_ring->bd_ring.addr.idx = low_power ?
drivers/net/wireless/realtek/rtw89/pci.c
3405
struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
3407
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
3420
struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
3422
tx_ring->bd_ring.head = NULL;
drivers/net/wireless/realtek/rtw89/pci.c
3431
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
3437
tx_ring = &rtwpci->tx.rings[i];
drivers/net/wireless/realtek/rtw89/pci.c
3438
rtw89_pci_free_tx_wd_ring(rtwdev, pdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
3439
rtw89_pci_free_tx_ring(rtwdev, pdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
3523
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
3526
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
3564
rtw89_pci_enqueue_txwd(tx_ring, txwd);
drivers/net/wireless/realtek/rtw89/pci.c
3574
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
3582
ret = rtw89_pci_alloc_tx_wd_ring(rtwdev, pdev, tx_ring, txch);
drivers/net/wireless/realtek/rtw89/pci.c
3594
INIT_LIST_HEAD(&tx_ring->busy_pages);
drivers/net/wireless/realtek/rtw89/pci.c
3595
tx_ring->bd_ring.head = head;
drivers/net/wireless/realtek/rtw89/pci.c
3596
tx_ring->bd_ring.dma = dma;
drivers/net/wireless/realtek/rtw89/pci.c
3597
tx_ring->bd_ring.len = len;
drivers/net/wireless/realtek/rtw89/pci.c
3598
tx_ring->bd_ring.desc_size = desc_size;
drivers/net/wireless/realtek/rtw89/pci.c
3599
tx_ring->bd_ring.addr = *txch_addr;
drivers/net/wireless/realtek/rtw89/pci.c
3600
tx_ring->bd_ring.wp = 0;
drivers/net/wireless/realtek/rtw89/pci.c
3601
tx_ring->bd_ring.rp = 0;
drivers/net/wireless/realtek/rtw89/pci.c
3602
tx_ring->txch = txch;
drivers/net/wireless/realtek/rtw89/pci.c
3607
rtw89_pci_free_tx_wd_ring(rtwdev, pdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
3618
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
3648
tx_ring = &rtwpci->tx.rings[i];
drivers/net/wireless/realtek/rtw89/pci.c
3649
ret = rtw89_pci_alloc_tx_ring(rtwdev, pdev, tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
3665
tx_ring = &rtwpci->tx.rings[i];
drivers/net/wireless/realtek/rtw89/pci.c
3666
rtw89_pci_free_tx_ring(rtwdev, pdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
461
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
477
tx_ring->tx_acked++;
drivers/net/wireless/realtek/rtw89/pci.c
484
tx_ring->tx_retry_lmt++;
drivers/net/wireless/realtek/rtw89/pci.c
487
tx_ring->tx_life_time++;
drivers/net/wireless/realtek/rtw89/pci.c
490
tx_ring->tx_mac_id_drop++;
drivers/net/wireless/realtek/rtw89/pci.c
501
static void rtw89_pci_reclaim_txbd(struct rtw89_dev *rtwdev, struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
506
cnt = rtw89_pci_txbd_recalc(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
508
txwd = list_first_entry_or_null(&tx_ring->busy_pages, struct rtw89_pci_tx_wd, list);
drivers/net/wireless/realtek/rtw89/pci.c
518
rtw89_pci_enqueue_txwd(tx_ring, txwd);
drivers/net/wireless/realtek/rtw89/pci.c
523
struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
525
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
530
txwd = list_first_entry_or_null(&tx_ring->busy_pages, struct rtw89_pci_tx_wd, list);
drivers/net/wireless/realtek/rtw89/pci.c
539
struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.c
546
u8 txch = tx_ring->txch;
drivers/net/wireless/realtek/rtw89/pci.c
549
rtw89_pci_reclaim_txbd(rtwdev, tx_ring);
drivers/net/wireless/realtek/rtw89/pci.c
565
rtw89_pci_tx_status(rtwdev, tx_ring, skb, tx_status);
drivers/net/wireless/realtek/rtw89/pci.c
569
rtw89_pci_enqueue_txwd(tx_ring, txwd);
drivers/net/wireless/realtek/rtw89/pci.c
602
struct rtw89_pci_tx_ring *tx_ring;
drivers/net/wireless/realtek/rtw89/pci.c
619
tx_ring = &rtwpci->tx.rings[rpp_info.txch];
drivers/net/wireless/realtek/rtw89/pci.c
620
wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
623
rtw89_pci_release_txwd_skb(rtwdev, tx_ring, txwd, rpp_info.seq,
drivers/net/wireless/realtek/rtw89/pci.c
628
struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
630
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.c
640
rtw89_pci_release_txwd_skb(rtwdev, tx_ring, txwd, i, RTW89_TX_MACID_DROP);
drivers/net/wireless/realtek/rtw89/pci.c
88
struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.c
90
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
drivers/net/wireless/realtek/rtw89/pci.h
1679
rtw89_pci_get_next_txbd(struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.h
1681
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
drivers/net/wireless/realtek/rtw89/pci.h
1691
rtw89_pci_dequeue_txwd(struct rtw89_pci_tx_ring *tx_ring)
drivers/net/wireless/realtek/rtw89/pci.h
1693
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wireless/realtek/rtw89/pci.h
1709
rtw89_pci_enqueue_txwd(struct rtw89_pci_tx_ring *tx_ring,
drivers/net/wireless/realtek/rtw89/pci.h
1712
struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring;
drivers/net/wwan/t7xx/t7xx_hif_cldma.c
1004
md_ctrl->tx_ring[qno].pkt_size = CLDMA_SHARED_Q_BUFF_SZ;
drivers/net/wwan/t7xx/t7xx_hif_cldma.c
1007
md_ctrl->tx_ring[CLDMA_Q_IDX_DUMP].pkt_size = CLDMA_DEDICATED_Q_BUFF_SZ;
drivers/net/wwan/t7xx/t7xx_hif_cldma.c
1034
ret = t7xx_cldma_tx_ring_init(md_ctrl, &md_ctrl->tx_ring[i]);
drivers/net/wwan/t7xx/t7xx_hif_cldma.c
1064
t7xx_cldma_ring_free(md_ctrl, &md_ctrl->tx_ring[i], DMA_TO_DEVICE);
drivers/net/wwan/t7xx/t7xx_hif_cldma.c
532
queue->tr_ring = &md_ctrl->tx_ring[queue->index];
drivers/net/wwan/t7xx/t7xx_hif_cldma.c
674
t7xx_cldma_ring_free(md_ctrl, &md_ctrl->tx_ring[i], DMA_TO_DEVICE);
drivers/net/wwan/t7xx/t7xx_hif_cldma.h
109
struct cldma_ring tx_ring[CLDMA_TXQ_NUM];
drivers/net/wwan/t7xx/t7xx_port_proxy.c
263
return md_ctrl->tx_ring[tx_qno].pkt_size;
drivers/net/xen-netback/xenbus.c
29
struct xen_netif_tx_back_ring *tx_ring = &queue->tx;
drivers/net/xen-netback/xenbus.c
33
if (tx_ring->sring) {
drivers/net/xen-netback/xenbus.c
34
struct xen_netif_tx_sring *sring = tx_ring->sring;
drivers/net/xen-netback/xenbus.c
37
tx_ring->nr_ents);
drivers/net/xen-netback/xenbus.c
41
tx_ring->req_cons,
drivers/net/xen-netback/xenbus.c
42
tx_ring->req_cons - sring->rsp_prod,
drivers/net/xen-netback/xenbus.c
47
tx_ring->rsp_prod_pvt,
drivers/net/xen-netback/xenbus.c
48
tx_ring->rsp_prod_pvt - sring->rsp_prod,
drivers/thunderbolt/dma_test.c
129
if (dt->tx_ring) {
drivers/thunderbolt/dma_test.c
131
tb_ring_free(dt->tx_ring);
drivers/thunderbolt/dma_test.c
132
dt->tx_ring = NULL;
drivers/thunderbolt/dma_test.c
157
dt->tx_ring = ring;
drivers/thunderbolt/dma_test.c
195
dt->tx_ring ? dt->tx_ring->hop : -1,
drivers/thunderbolt/dma_test.c
203
if (dt->tx_ring)
drivers/thunderbolt/dma_test.c
204
tb_ring_start(dt->tx_ring);
drivers/thunderbolt/dma_test.c
217
if (dt->tx_ring)
drivers/thunderbolt/dma_test.c
218
tb_ring_stop(dt->tx_ring);
drivers/thunderbolt/dma_test.c
221
dt->tx_ring ? dt->tx_ring->hop : -1,
drivers/thunderbolt/dma_test.c
304
struct device *dma_dev = tb_ring_dma_device(dt->tx_ring);
drivers/thunderbolt/dma_test.c
314
struct device *dma_dev = tb_ring_dma_device(dt->tx_ring);
drivers/thunderbolt/dma_test.c
352
tb_ring_tx(dt->tx_ring, &tf->frame);
drivers/thunderbolt/dma_test.c
97
struct tb_ring *tx_ring;
include/linux/soc/mediatek/mtk_wed.h
98
struct mtk_wed_ring tx_ring[MTK_WED_TX_QUEUES];
net/packet/af_packet.c
1226
po->tx_ring.pending_refcnt = alloc_percpu(unsigned int);
net/packet/af_packet.c
1227
if (unlikely(po->tx_ring.pending_refcnt == NULL))
net/packet/af_packet.c
1235
free_percpu(po->tx_ring.pending_refcnt);
net/packet/af_packet.c
174
int closing, int tx_ring);
net/packet/af_packet.c
2513
if (likely(po->tx_ring.pg_vec)) {
net/packet/af_packet.c
2518
packet_dec_pending(&po->tx_ring);
net/packet/af_packet.c
2680
off_max = po->tx_ring.frame_size - tp_len;
net/packet/af_packet.c
2741
if (unlikely(!po->tx_ring.pg_vec)) {
net/packet/af_packet.c
2782
size_max = po->tx_ring.frame_size
net/packet/af_packet.c
2792
ph = packet_current_frame(po, &po->tx_ring,
net/packet/af_packet.c
2800
if (need_wait && packet_read_pending(&po->tx_ring)) {
net/packet/af_packet.c
2857
packet_increment_head(&po->tx_ring);
net/packet/af_packet.c
2877
packet_inc_pending(&po->tx_ring);
net/packet/af_packet.c
2896
packet_increment_head(&po->tx_ring);
net/packet/af_packet.c
3105
if (data_race(po->tx_ring.pg_vec))
net/packet/af_packet.c
3155
if (po->tx_ring.pg_vec) {
net/packet/af_packet.c
3873
if (po->rx_ring.pg_vec || po->tx_ring.pg_vec) {
net/packet/af_packet.c
3893
if (po->rx_ring.pg_vec || po->tx_ring.pg_vec) {
net/packet/af_packet.c
3912
if (po->rx_ring.pg_vec || po->tx_ring.pg_vec) {
net/packet/af_packet.c
3966
if (po->rx_ring.pg_vec || po->tx_ring.pg_vec) {
net/packet/af_packet.c
4030
if (!po->rx_ring.pg_vec && !po->tx_ring.pg_vec)
net/packet/af_packet.c
4306
if (po->tx_ring.pg_vec) {
net/packet/af_packet.c
4307
if (packet_current_frame(po, &po->tx_ring, TP_STATUS_AVAILABLE))
net/packet/af_packet.c
4413
int closing, int tx_ring)
net/packet/af_packet.c
4426
rb = tx_ring ? &po->tx_ring : &po->rx_ring;
net/packet/af_packet.c
4427
rb_queue = tx_ring ? &sk->sk_write_queue : &sk->sk_receive_queue;
net/packet/af_packet.c
4489
if (!tx_ring) {
net/packet/af_packet.c
4503
if (!tx_ring) {
net/packet/af_packet.c
4566
if (!tx_ring)
net/packet/af_packet.c
4596
for (rb = &po->rx_ring; rb <= &po->tx_ring; rb++) {
net/packet/af_packet.c
4612
for (rb = &po->rx_ring; rb <= &po->tx_ring; rb++) {
net/packet/diag.c
106
ret = pdiag_put_ring(&po->tx_ring, po->tp_version,
net/packet/internal.h
110
struct packet_ring_buffer tx_ring;