Lines Matching refs:rx_ring

101 int fm10k_setup_rx_resources(struct fm10k_ring *rx_ring)  in fm10k_setup_rx_resources()  argument
103 struct device *dev = rx_ring->dev; in fm10k_setup_rx_resources()
106 size = sizeof(struct fm10k_rx_buffer) * rx_ring->count; in fm10k_setup_rx_resources()
108 rx_ring->rx_buffer = vzalloc(size); in fm10k_setup_rx_resources()
109 if (!rx_ring->rx_buffer) in fm10k_setup_rx_resources()
112 u64_stats_init(&rx_ring->syncp); in fm10k_setup_rx_resources()
115 rx_ring->size = rx_ring->count * sizeof(union fm10k_rx_desc); in fm10k_setup_rx_resources()
116 rx_ring->size = ALIGN(rx_ring->size, 4096); in fm10k_setup_rx_resources()
118 rx_ring->desc = dma_alloc_coherent(dev, rx_ring->size, in fm10k_setup_rx_resources()
119 &rx_ring->dma, GFP_KERNEL); in fm10k_setup_rx_resources()
120 if (!rx_ring->desc) in fm10k_setup_rx_resources()
125 vfree(rx_ring->rx_buffer); in fm10k_setup_rx_resources()
126 rx_ring->rx_buffer = NULL; in fm10k_setup_rx_resources()
145 err = fm10k_setup_rx_resources(interface->rx_ring[i]); in fm10k_setup_all_rx_resources()
158 fm10k_free_rx_resources(interface->rx_ring[i]); in fm10k_setup_all_rx_resources()
269 static void fm10k_clean_rx_ring(struct fm10k_ring *rx_ring) in fm10k_clean_rx_ring() argument
274 if (!rx_ring->rx_buffer) in fm10k_clean_rx_ring()
277 if (rx_ring->skb) in fm10k_clean_rx_ring()
278 dev_kfree_skb(rx_ring->skb); in fm10k_clean_rx_ring()
279 rx_ring->skb = NULL; in fm10k_clean_rx_ring()
282 for (i = 0; i < rx_ring->count; i++) { in fm10k_clean_rx_ring()
283 struct fm10k_rx_buffer *buffer = &rx_ring->rx_buffer[i]; in fm10k_clean_rx_ring()
288 dma_unmap_page(rx_ring->dev, buffer->dma, in fm10k_clean_rx_ring()
295 size = sizeof(struct fm10k_rx_buffer) * rx_ring->count; in fm10k_clean_rx_ring()
296 memset(rx_ring->rx_buffer, 0, size); in fm10k_clean_rx_ring()
299 memset(rx_ring->desc, 0, rx_ring->size); in fm10k_clean_rx_ring()
301 rx_ring->next_to_alloc = 0; in fm10k_clean_rx_ring()
302 rx_ring->next_to_clean = 0; in fm10k_clean_rx_ring()
303 rx_ring->next_to_use = 0; in fm10k_clean_rx_ring()
312 void fm10k_free_rx_resources(struct fm10k_ring *rx_ring) in fm10k_free_rx_resources() argument
314 fm10k_clean_rx_ring(rx_ring); in fm10k_free_rx_resources()
316 vfree(rx_ring->rx_buffer); in fm10k_free_rx_resources()
317 rx_ring->rx_buffer = NULL; in fm10k_free_rx_resources()
320 if (!rx_ring->desc) in fm10k_free_rx_resources()
323 dma_free_coherent(rx_ring->dev, rx_ring->size, in fm10k_free_rx_resources()
324 rx_ring->desc, rx_ring->dma); in fm10k_free_rx_resources()
326 rx_ring->desc = NULL; in fm10k_free_rx_resources()
338 fm10k_clean_rx_ring(interface->rx_ring[i]); in fm10k_clean_all_rx_rings()
352 fm10k_free_rx_resources(interface->rx_ring[i]); in fm10k_free_all_rx_resources()
783 struct fm10k_ring *rx_ring = interface->rx_ring[i]; in fm10k_update_vid() local
784 u16 rx_vid = rx_ring->vid & (VLAN_N_VID - 1); in fm10k_update_vid()
787 rx_ring->vid |= FM10K_VLAN_CLEAR; in fm10k_update_vid()
789 rx_ring->vid &= ~FM10K_VLAN_CLEAR; in fm10k_update_vid()
1112 ring = ACCESS_ONCE(interface->rx_ring[i]); in fm10k_get_stats64()
1210 ring = interface->rx_ring[i]; in fm10k_assign_l2_accel()