Lines Matching refs:rx_ring

122 	napi_gro_receive(&adapter->rx_ring->napi, skb);  in igbvf_receive_skb()
155 static void igbvf_alloc_rx_buffers(struct igbvf_ring *rx_ring, in igbvf_alloc_rx_buffers() argument
158 struct igbvf_adapter *adapter = rx_ring->adapter; in igbvf_alloc_rx_buffers()
167 i = rx_ring->next_to_use; in igbvf_alloc_rx_buffers()
168 buffer_info = &rx_ring->buffer_info[i]; in igbvf_alloc_rx_buffers()
176 rx_desc = IGBVF_RX_DESC_ADV(*rx_ring, i); in igbvf_alloc_rx_buffers()
234 if (i == rx_ring->count) in igbvf_alloc_rx_buffers()
236 buffer_info = &rx_ring->buffer_info[i]; in igbvf_alloc_rx_buffers()
240 if (rx_ring->next_to_use != i) { in igbvf_alloc_rx_buffers()
241 rx_ring->next_to_use = i; in igbvf_alloc_rx_buffers()
243 i = (rx_ring->count - 1); in igbvf_alloc_rx_buffers()
253 writel(i, adapter->hw.hw_addr + rx_ring->tail); in igbvf_alloc_rx_buffers()
267 struct igbvf_ring *rx_ring = adapter->rx_ring; in igbvf_clean_rx_irq() local
279 i = rx_ring->next_to_clean; in igbvf_clean_rx_irq()
280 rx_desc = IGBVF_RX_DESC_ADV(*rx_ring, i); in igbvf_clean_rx_irq()
289 buffer_info = &rx_ring->buffer_info[i]; in igbvf_clean_rx_irq()
348 if (i == rx_ring->count) in igbvf_clean_rx_irq()
350 next_rxd = IGBVF_RX_DESC_ADV(*rx_ring, i); in igbvf_clean_rx_irq()
352 next_buffer = &rx_ring->buffer_info[i]; in igbvf_clean_rx_irq()
382 igbvf_alloc_rx_buffers(rx_ring, cleaned_count); in igbvf_clean_rx_irq()
393 rx_ring->next_to_clean = i; in igbvf_clean_rx_irq()
394 cleaned_count = igbvf_desc_unused(rx_ring); in igbvf_clean_rx_irq()
397 igbvf_alloc_rx_buffers(rx_ring, cleaned_count); in igbvf_clean_rx_irq()
474 struct igbvf_ring *rx_ring) in igbvf_setup_rx_resources() argument
479 size = sizeof(struct igbvf_buffer) * rx_ring->count; in igbvf_setup_rx_resources()
480 rx_ring->buffer_info = vzalloc(size); in igbvf_setup_rx_resources()
481 if (!rx_ring->buffer_info) in igbvf_setup_rx_resources()
487 rx_ring->size = rx_ring->count * desc_len; in igbvf_setup_rx_resources()
488 rx_ring->size = ALIGN(rx_ring->size, 4096); in igbvf_setup_rx_resources()
490 rx_ring->desc = dma_alloc_coherent(&pdev->dev, rx_ring->size, in igbvf_setup_rx_resources()
491 &rx_ring->dma, GFP_KERNEL); in igbvf_setup_rx_resources()
492 if (!rx_ring->desc) in igbvf_setup_rx_resources()
495 rx_ring->next_to_clean = 0; in igbvf_setup_rx_resources()
496 rx_ring->next_to_use = 0; in igbvf_setup_rx_resources()
498 rx_ring->adapter = adapter; in igbvf_setup_rx_resources()
503 vfree(rx_ring->buffer_info); in igbvf_setup_rx_resources()
504 rx_ring->buffer_info = NULL; in igbvf_setup_rx_resources()
568 static void igbvf_clean_rx_ring(struct igbvf_ring *rx_ring) in igbvf_clean_rx_ring() argument
570 struct igbvf_adapter *adapter = rx_ring->adapter; in igbvf_clean_rx_ring()
576 if (!rx_ring->buffer_info) in igbvf_clean_rx_ring()
580 for (i = 0; i < rx_ring->count; i++) { in igbvf_clean_rx_ring()
581 buffer_info = &rx_ring->buffer_info[i]; in igbvf_clean_rx_ring()
613 size = sizeof(struct igbvf_buffer) * rx_ring->count; in igbvf_clean_rx_ring()
614 memset(rx_ring->buffer_info, 0, size); in igbvf_clean_rx_ring()
617 memset(rx_ring->desc, 0, rx_ring->size); in igbvf_clean_rx_ring()
619 rx_ring->next_to_clean = 0; in igbvf_clean_rx_ring()
620 rx_ring->next_to_use = 0; in igbvf_clean_rx_ring()
622 writel(0, adapter->hw.hw_addr + rx_ring->head); in igbvf_clean_rx_ring()
623 writel(0, adapter->hw.hw_addr + rx_ring->tail); in igbvf_clean_rx_ring()
633 void igbvf_free_rx_resources(struct igbvf_ring *rx_ring) in igbvf_free_rx_resources() argument
635 struct pci_dev *pdev = rx_ring->adapter->pdev; in igbvf_free_rx_resources()
637 igbvf_clean_rx_ring(rx_ring); in igbvf_free_rx_resources()
639 vfree(rx_ring->buffer_info); in igbvf_free_rx_resources()
640 rx_ring->buffer_info = NULL; in igbvf_free_rx_resources()
642 dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, in igbvf_free_rx_resources()
643 rx_ring->dma); in igbvf_free_rx_resources()
644 rx_ring->desc = NULL; in igbvf_free_rx_resources()
762 adapter->rx_ring->itr_range = in igbvf_set_itr()
763 igbvf_update_itr(adapter, adapter->rx_ring->itr_val, in igbvf_set_itr()
767 adapter->rx_ring->itr_range == lowest_latency) in igbvf_set_itr()
768 adapter->rx_ring->itr_range = low_latency; in igbvf_set_itr()
770 new_itr = igbvf_range_to_itr(adapter->rx_ring->itr_range); in igbvf_set_itr()
772 if (new_itr != adapter->rx_ring->itr_val) { in igbvf_set_itr()
773 u32 current_itr = adapter->rx_ring->itr_val; in igbvf_set_itr()
778 adapter->rx_ring->itr_val = new_itr; in igbvf_set_itr()
780 adapter->rx_ring->set_itr = 1; in igbvf_set_itr()
926 if (adapter->rx_ring->set_itr) { in igbvf_intr_msix_rx()
927 writel(adapter->rx_ring->itr_val, in igbvf_intr_msix_rx()
928 adapter->hw.hw_addr + adapter->rx_ring->itr_register); in igbvf_intr_msix_rx()
929 adapter->rx_ring->set_itr = 0; in igbvf_intr_msix_rx()
932 if (napi_schedule_prep(&adapter->rx_ring->napi)) { in igbvf_intr_msix_rx()
935 __napi_schedule(&adapter->rx_ring->napi); in igbvf_intr_msix_rx()
966 adapter->rx_ring[rx_queue].eims_value = 1 << msix_vector; in igbvf_assign_vector()
998 struct igbvf_ring *rx_ring = adapter->rx_ring; in igbvf_configure_msix() local
1007 adapter->eims_enable_mask |= rx_ring->eims_value; in igbvf_configure_msix()
1008 writel(rx_ring->itr_val, hw->hw_addr + rx_ring->itr_register); in igbvf_configure_msix()
1075 sprintf(adapter->rx_ring->name, "%s-rx-0", netdev->name); in igbvf_request_msix()
1078 memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ); in igbvf_request_msix()
1092 igbvf_intr_msix_rx, 0, adapter->rx_ring->name, in igbvf_request_msix()
1097 adapter->rx_ring->itr_register = E1000_EITR(vector); in igbvf_request_msix()
1098 adapter->rx_ring->itr_val = adapter->current_itr; in igbvf_request_msix()
1124 adapter->rx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL); in igbvf_alloc_queues()
1125 if (!adapter->rx_ring) { in igbvf_alloc_queues()
1130 netif_napi_add(netdev, &adapter->rx_ring->napi, igbvf_poll, 64); in igbvf_alloc_queues()
1204 struct igbvf_ring *rx_ring = container_of(napi, struct igbvf_ring, napi); in igbvf_poll() local
1205 struct igbvf_adapter *adapter = rx_ring->adapter; in igbvf_poll()
1219 ew32(EIMS, adapter->rx_ring->eims_value); in igbvf_poll()
1367 struct igbvf_ring *rx_ring = adapter->rx_ring; in igbvf_configure_rx() local
1377 rdlen = rx_ring->count * sizeof(union e1000_adv_rx_desc); in igbvf_configure_rx()
1382 rdba = rx_ring->dma; in igbvf_configure_rx()
1385 ew32(RDLEN(0), rx_ring->count * sizeof(union e1000_adv_rx_desc)); in igbvf_configure_rx()
1386 rx_ring->head = E1000_RDH(0); in igbvf_configure_rx()
1387 rx_ring->tail = E1000_RDT(0); in igbvf_configure_rx()
1449 igbvf_alloc_rx_buffers(adapter->rx_ring, in igbvf_configure()
1450 igbvf_desc_unused(adapter->rx_ring)); in igbvf_configure()
1492 napi_enable(&adapter->rx_ring->napi); in igbvf_up()
1533 napi_disable(&adapter->rx_ring->napi); in igbvf_down()
1547 igbvf_clean_rx_ring(adapter->rx_ring); in igbvf_down()
1665 err = igbvf_setup_rx_resources(adapter, adapter->rx_ring); in igbvf_open()
1683 napi_enable(&adapter->rx_ring->napi); in igbvf_open()
1697 igbvf_free_rx_resources(adapter->rx_ring); in igbvf_open()
1727 igbvf_free_rx_resources(adapter->rx_ring); in igbvf_close()
1895 ew32(EICS, adapter->rx_ring->eims_value); in igbvf_watchdog_task()
2768 adapter->rx_ring->count = 1024; in igbvf_probe()
2795 kfree(adapter->rx_ring); in igbvf_probe()
2841 netif_napi_del(&adapter->rx_ring->napi); in igbvf_remove()
2843 kfree(adapter->rx_ring); in igbvf_remove()