Lines Matching refs:rx_ring
83 int fm10k_setup_rx_resources(struct fm10k_ring *rx_ring) in fm10k_setup_rx_resources() argument
85 struct device *dev = rx_ring->dev; in fm10k_setup_rx_resources()
88 size = sizeof(struct fm10k_rx_buffer) * rx_ring->count; in fm10k_setup_rx_resources()
90 rx_ring->rx_buffer = vzalloc(size); in fm10k_setup_rx_resources()
91 if (!rx_ring->rx_buffer) in fm10k_setup_rx_resources()
94 u64_stats_init(&rx_ring->syncp); in fm10k_setup_rx_resources()
97 rx_ring->size = rx_ring->count * sizeof(union fm10k_rx_desc); in fm10k_setup_rx_resources()
98 rx_ring->size = ALIGN(rx_ring->size, 4096); in fm10k_setup_rx_resources()
100 rx_ring->desc = dma_alloc_coherent(dev, rx_ring->size, in fm10k_setup_rx_resources()
101 &rx_ring->dma, GFP_KERNEL); in fm10k_setup_rx_resources()
102 if (!rx_ring->desc) in fm10k_setup_rx_resources()
107 vfree(rx_ring->rx_buffer); in fm10k_setup_rx_resources()
108 rx_ring->rx_buffer = NULL; in fm10k_setup_rx_resources()
127 err = fm10k_setup_rx_resources(interface->rx_ring[i]); in fm10k_setup_all_rx_resources()
140 fm10k_free_rx_resources(interface->rx_ring[i]); in fm10k_setup_all_rx_resources()
248 static void fm10k_clean_rx_ring(struct fm10k_ring *rx_ring) in fm10k_clean_rx_ring() argument
253 if (!rx_ring->rx_buffer) in fm10k_clean_rx_ring()
256 dev_kfree_skb(rx_ring->skb); in fm10k_clean_rx_ring()
257 rx_ring->skb = NULL; in fm10k_clean_rx_ring()
260 for (i = 0; i < rx_ring->count; i++) { in fm10k_clean_rx_ring()
261 struct fm10k_rx_buffer *buffer = &rx_ring->rx_buffer[i]; in fm10k_clean_rx_ring()
266 dma_unmap_page(rx_ring->dev, buffer->dma, in fm10k_clean_rx_ring()
273 size = sizeof(struct fm10k_rx_buffer) * rx_ring->count; in fm10k_clean_rx_ring()
274 memset(rx_ring->rx_buffer, 0, size); in fm10k_clean_rx_ring()
277 memset(rx_ring->desc, 0, rx_ring->size); in fm10k_clean_rx_ring()
279 rx_ring->next_to_alloc = 0; in fm10k_clean_rx_ring()
280 rx_ring->next_to_clean = 0; in fm10k_clean_rx_ring()
281 rx_ring->next_to_use = 0; in fm10k_clean_rx_ring()
290 void fm10k_free_rx_resources(struct fm10k_ring *rx_ring) in fm10k_free_rx_resources() argument
292 fm10k_clean_rx_ring(rx_ring); in fm10k_free_rx_resources()
294 vfree(rx_ring->rx_buffer); in fm10k_free_rx_resources()
295 rx_ring->rx_buffer = NULL; in fm10k_free_rx_resources()
298 if (!rx_ring->desc) in fm10k_free_rx_resources()
301 dma_free_coherent(rx_ring->dev, rx_ring->size, in fm10k_free_rx_resources()
302 rx_ring->desc, rx_ring->dma); in fm10k_free_rx_resources()
304 rx_ring->desc = NULL; in fm10k_free_rx_resources()
316 fm10k_clean_rx_ring(interface->rx_ring[i]); in fm10k_clean_all_rx_rings()
330 fm10k_free_rx_resources(interface->rx_ring[i]); in fm10k_free_all_rx_resources()
937 struct fm10k_ring *rx_ring = interface->rx_ring[i]; in fm10k_update_vid() local
938 u16 rx_vid = rx_ring->vid & (VLAN_N_VID - 1); in fm10k_update_vid()
941 rx_ring->vid |= FM10K_VLAN_CLEAR; in fm10k_update_vid()
943 rx_ring->vid &= ~FM10K_VLAN_CLEAR; in fm10k_update_vid()
1339 ring = READ_ONCE(interface->rx_ring[i]); in fm10k_get_stats64()
1449 struct fm10k_ring *ring = interface->rx_ring[i]; in fm10k_assign_l2_accel()