Lines Matching defs:tx_ring

11  * @tx_ring:    tx descriptor ring (for a specific queue) to setup
15 int fm10k_setup_tx_resources(struct fm10k_ring *tx_ring)
17 struct device *dev = tx_ring->dev;
20 size = sizeof(struct fm10k_tx_buffer) * tx_ring->count;
22 tx_ring->tx_buffer = vzalloc(size);
23 if (!tx_ring->tx_buffer)
26 u64_stats_init(&tx_ring->syncp);
29 tx_ring->size = tx_ring->count * sizeof(struct fm10k_tx_desc);
30 tx_ring->size = ALIGN(tx_ring->size, 4096);
32 tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size,
33 &tx_ring->dma, GFP_KERNEL);
34 if (!tx_ring->desc)
40 vfree(tx_ring->tx_buffer);
41 tx_ring->tx_buffer = NULL;
60 err = fm10k_setup_tx_resources(interface->tx_ring[i]);
73 fm10k_free_tx_resources(interface->tx_ring[i]);
168 * @tx_ring: ring to be cleaned
170 static void fm10k_clean_tx_ring(struct fm10k_ring *tx_ring)
176 if (!tx_ring->tx_buffer)
180 for (i = 0; i < tx_ring->count; i++) {
181 struct fm10k_tx_buffer *tx_buffer = &tx_ring->tx_buffer[i];
183 fm10k_unmap_and_free_tx_resource(tx_ring, tx_buffer);
187 netdev_tx_reset_queue(txring_txq(tx_ring));
189 size = sizeof(struct fm10k_tx_buffer) * tx_ring->count;
190 memset(tx_ring->tx_buffer, 0, size);
193 memset(tx_ring->desc, 0, tx_ring->size);
198 * @tx_ring: Tx descriptor ring for a specific queue
202 void fm10k_free_tx_resources(struct fm10k_ring *tx_ring)
204 fm10k_clean_tx_ring(tx_ring);
206 vfree(tx_ring->tx_buffer);
207 tx_ring->tx_buffer = NULL;
210 if (!tx_ring->desc)
213 dma_free_coherent(tx_ring->dev, tx_ring->size,
214 tx_ring->desc, tx_ring->dma);
215 tx_ring->desc = NULL;
227 fm10k_clean_tx_ring(interface->tx_ring[i]);
241 fm10k_free_tx_resources(interface->tx_ring[i]);
575 err = fm10k_xmit_frame_ring(skb, interface->tx_ring[r_idx]);
588 struct fm10k_ring *tx_ring;
596 tx_ring = interface->tx_ring[txqueue];
597 if (check_for_tx_hang(tx_ring) && fm10k_check_tx_hang(tx_ring))
1242 ring = READ_ONCE(interface->tx_ring[i]);