Lines Matching refs:rx_ring

225 	struct e1000_ring *rx_ring = adapter->rx_ring;  in e1000e_dump()  local
341 0, rx_ring->next_to_use, rx_ring->next_to_clean); in e1000e_dump()
377 for (i = 0; i < rx_ring->count; i++) { in e1000e_dump()
379 buffer_info = &rx_ring->buffer_info[i]; in e1000e_dump()
380 rx_desc_ps = E1000_RX_DESC_PS(*rx_ring, i); in e1000e_dump()
385 if (i == rx_ring->next_to_use) in e1000e_dump()
387 else if (i == rx_ring->next_to_clean) in e1000e_dump()
443 for (i = 0; i < rx_ring->count; i++) { in e1000e_dump()
446 buffer_info = &rx_ring->buffer_info[i]; in e1000e_dump()
447 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000e_dump()
451 if (i == rx_ring->next_to_use) in e1000e_dump()
453 else if (i == rx_ring->next_to_clean) in e1000e_dump()
623 static void e1000e_update_rdt_wa(struct e1000_ring *rx_ring, unsigned int i) in e1000e_update_rdt_wa() argument
625 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_update_rdt_wa()
629 writel(i, rx_ring->tail); in e1000e_update_rdt_wa()
631 if (unlikely(!ret_val && (i != readl(rx_ring->tail)))) { in e1000e_update_rdt_wa()
661 static void e1000_alloc_rx_buffers(struct e1000_ring *rx_ring, in e1000_alloc_rx_buffers() argument
664 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_rx_buffers()
673 i = rx_ring->next_to_use; in e1000_alloc_rx_buffers()
674 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers()
701 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_alloc_rx_buffers()
712 e1000e_update_rdt_wa(rx_ring, i); in e1000_alloc_rx_buffers()
714 writel(i, rx_ring->tail); in e1000_alloc_rx_buffers()
717 if (i == rx_ring->count) in e1000_alloc_rx_buffers()
719 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers()
722 rx_ring->next_to_use = i; in e1000_alloc_rx_buffers()
729 static void e1000_alloc_rx_buffers_ps(struct e1000_ring *rx_ring, in e1000_alloc_rx_buffers_ps() argument
732 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_rx_buffers_ps()
741 i = rx_ring->next_to_use; in e1000_alloc_rx_buffers_ps()
742 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers_ps()
745 rx_desc = E1000_RX_DESC_PS(*rx_ring, i); in e1000_alloc_rx_buffers_ps()
812 e1000e_update_rdt_wa(rx_ring, i << 1); in e1000_alloc_rx_buffers_ps()
814 writel(i << 1, rx_ring->tail); in e1000_alloc_rx_buffers_ps()
818 if (i == rx_ring->count) in e1000_alloc_rx_buffers_ps()
820 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers_ps()
824 rx_ring->next_to_use = i; in e1000_alloc_rx_buffers_ps()
833 static void e1000_alloc_jumbo_rx_buffers(struct e1000_ring *rx_ring, in e1000_alloc_jumbo_rx_buffers() argument
836 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_jumbo_rx_buffers()
845 i = rx_ring->next_to_use; in e1000_alloc_jumbo_rx_buffers()
846 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_jumbo_rx_buffers()
884 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_alloc_jumbo_rx_buffers()
887 if (unlikely(++i == rx_ring->count)) in e1000_alloc_jumbo_rx_buffers()
889 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_jumbo_rx_buffers()
892 if (likely(rx_ring->next_to_use != i)) { in e1000_alloc_jumbo_rx_buffers()
893 rx_ring->next_to_use = i; in e1000_alloc_jumbo_rx_buffers()
895 i = (rx_ring->count - 1); in e1000_alloc_jumbo_rx_buffers()
904 e1000e_update_rdt_wa(rx_ring, i); in e1000_alloc_jumbo_rx_buffers()
906 writel(i, rx_ring->tail); in e1000_alloc_jumbo_rx_buffers()
924 static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_rx_irq() argument
927 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_irq()
939 i = rx_ring->next_to_clean; in e1000_clean_rx_irq()
940 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_rx_irq()
942 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq()
958 if (i == rx_ring->count) in e1000_clean_rx_irq()
960 next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_rx_irq()
963 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq()
1050 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_rx_irq()
1061 rx_ring->next_to_clean = i; in e1000_clean_rx_irq()
1063 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_rx_irq()
1065 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_rx_irq()
1308 static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_rx_irq_ps() argument
1311 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_irq_ps()
1325 i = rx_ring->next_to_clean; in e1000_clean_rx_irq_ps()
1326 rx_desc = E1000_RX_DESC_PS(*rx_ring, i); in e1000_clean_rx_irq_ps()
1328 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq_ps()
1341 if (i == rx_ring->count) in e1000_clean_rx_irq_ps()
1343 next_rxd = E1000_RX_DESC_PS(*rx_ring, i); in e1000_clean_rx_irq_ps()
1346 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq_ps()
1472 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_rx_irq_ps()
1483 rx_ring->next_to_clean = i; in e1000_clean_rx_irq_ps()
1485 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_rx_irq_ps()
1487 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_rx_irq_ps()
1513 static bool e1000_clean_jumbo_rx_irq(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_jumbo_rx_irq() argument
1516 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_jumbo_rx_irq()
1528 i = rx_ring->next_to_clean; in e1000_clean_jumbo_rx_irq()
1529 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_jumbo_rx_irq()
1531 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_jumbo_rx_irq()
1545 if (i == rx_ring->count) in e1000_clean_jumbo_rx_irq()
1547 next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_jumbo_rx_irq()
1550 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_jumbo_rx_irq()
1567 if (rx_ring->rx_skb_top) in e1000_clean_jumbo_rx_irq()
1568 dev_kfree_skb_irq(rx_ring->rx_skb_top); in e1000_clean_jumbo_rx_irq()
1569 rx_ring->rx_skb_top = NULL; in e1000_clean_jumbo_rx_irq()
1572 #define rxtop (rx_ring->rx_skb_top) in e1000_clean_jumbo_rx_irq()
1654 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_jumbo_rx_irq()
1665 rx_ring->next_to_clean = i; in e1000_clean_jumbo_rx_irq()
1667 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_jumbo_rx_irq()
1669 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_jumbo_rx_irq()
1680 static void e1000_clean_rx_ring(struct e1000_ring *rx_ring) in e1000_clean_rx_ring() argument
1682 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_ring()
1689 for (i = 0; i < rx_ring->count; i++) { in e1000_clean_rx_ring()
1690 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_ring()
1729 if (rx_ring->rx_skb_top) { in e1000_clean_rx_ring()
1730 dev_kfree_skb(rx_ring->rx_skb_top); in e1000_clean_rx_ring()
1731 rx_ring->rx_skb_top = NULL; in e1000_clean_rx_ring()
1735 memset(rx_ring->desc, 0, rx_ring->size); in e1000_clean_rx_ring()
1737 rx_ring->next_to_clean = 0; in e1000_clean_rx_ring()
1738 rx_ring->next_to_use = 0; in e1000_clean_rx_ring()
1741 writel(0, rx_ring->head); in e1000_clean_rx_ring()
1743 e1000e_update_rdt_wa(rx_ring, 0); in e1000_clean_rx_ring()
1745 writel(0, rx_ring->tail); in e1000_clean_rx_ring()
1962 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_intr_msix_rx() local
1967 if (rx_ring->set_itr) { in e1000_intr_msix_rx()
1968 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_intr_msix_rx()
1969 rx_ring->itr_register); in e1000_intr_msix_rx()
1970 rx_ring->set_itr = 0; in e1000_intr_msix_rx()
1990 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_msix() local
2006 rx_ring->ims_val = E1000_IMS_RXQ0; in e1000_configure_msix()
2007 adapter->eiac_mask |= rx_ring->ims_val; in e1000_configure_msix()
2008 if (rx_ring->itr_val) in e1000_configure_msix()
2009 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
2010 rx_ring->itr_register); in e1000_configure_msix()
2012 writel(1, rx_ring->itr_register); in e1000_configure_msix()
2029 if (rx_ring->itr_val) in e1000_configure_msix()
2030 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
2130 snprintf(adapter->rx_ring->name, in e1000_request_msix()
2131 sizeof(adapter->rx_ring->name) - 1, in e1000_request_msix()
2134 memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ); in e1000_request_msix()
2136 e1000_intr_msix_rx, 0, adapter->rx_ring->name, in e1000_request_msix()
2140 adapter->rx_ring->itr_register = adapter->hw.hw_addr + in e1000_request_msix()
2142 adapter->rx_ring->itr_val = adapter->itr; in e1000_request_msix()
2379 int e1000e_setup_rx_resources(struct e1000_ring *rx_ring) in e1000e_setup_rx_resources() argument
2381 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_setup_rx_resources()
2385 size = sizeof(struct e1000_buffer) * rx_ring->count; in e1000e_setup_rx_resources()
2386 rx_ring->buffer_info = vzalloc(size); in e1000e_setup_rx_resources()
2387 if (!rx_ring->buffer_info) in e1000e_setup_rx_resources()
2390 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2391 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2402 rx_ring->size = rx_ring->count * desc_len; in e1000e_setup_rx_resources()
2403 rx_ring->size = ALIGN(rx_ring->size, 4096); in e1000e_setup_rx_resources()
2405 err = e1000_alloc_ring_dma(adapter, rx_ring); in e1000e_setup_rx_resources()
2409 rx_ring->next_to_clean = 0; in e1000e_setup_rx_resources()
2410 rx_ring->next_to_use = 0; in e1000e_setup_rx_resources()
2411 rx_ring->rx_skb_top = NULL; in e1000e_setup_rx_resources()
2416 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2417 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2421 vfree(rx_ring->buffer_info); in e1000e_setup_rx_resources()
2485 void e1000e_free_rx_resources(struct e1000_ring *rx_ring) in e1000e_free_rx_resources() argument
2487 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_free_rx_resources()
2491 e1000_clean_rx_ring(rx_ring); in e1000e_free_rx_resources()
2493 for (i = 0; i < rx_ring->count; i++) in e1000e_free_rx_resources()
2494 kfree(rx_ring->buffer_info[i].ps_pages); in e1000e_free_rx_resources()
2496 vfree(rx_ring->buffer_info); in e1000e_free_rx_resources()
2497 rx_ring->buffer_info = NULL; in e1000e_free_rx_resources()
2499 dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, in e1000e_free_rx_resources()
2500 rx_ring->dma); in e1000e_free_rx_resources()
2501 rx_ring->desc = NULL; in e1000e_free_rx_resources()
2620 adapter->rx_ring->itr_val = new_itr; in e1000_set_itr()
2622 adapter->rx_ring->set_itr = 1; in e1000_set_itr()
2666 adapter->rx_ring = kzalloc(size, GFP_KERNEL); in e1000_alloc_queues()
2667 if (!adapter->rx_ring) in e1000_alloc_queues()
2669 adapter->rx_ring->count = adapter->rx_ring_count; in e1000_alloc_queues()
2670 adapter->rx_ring->adapter = adapter; in e1000_alloc_queues()
2675 kfree(adapter->rx_ring); in e1000_alloc_queues()
2696 (adapter->rx_ring->ims_val & adapter->tx_ring->ims_val)) in e1000e_poll()
2699 adapter->clean_rx(adapter->rx_ring, &work_done, weight); in e1000e_poll()
2711 ew32(IMS, adapter->rx_ring->ims_val); in e1000e_poll()
3203 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_rx() local
3209 rdlen = rx_ring->count * in e1000_configure_rx()
3214 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3218 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3269 rdba = rx_ring->dma; in e1000_configure_rx()
3275 rx_ring->head = adapter->hw.hw_addr + E1000_RDH(0); in e1000_configure_rx()
3276 rx_ring->tail = adapter->hw.hw_addr + E1000_RDT(0); in e1000_configure_rx()
3746 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure() local
3759 adapter->alloc_rx_buf(rx_ring, e1000_desc_unused(rx_ring), GFP_KERNEL); in e1000_configure()
4119 e1000_clean_rx_ring(adapter->rx_ring); in e1000e_down()
4387 err = e1000e_setup_rx_resources(adapter->rx_ring); in e1000_open()
4456 e1000e_free_rx_resources(adapter->rx_ring); in e1000_open()
4501 e1000e_free_rx_resources(adapter->rx_ring); in e1000_close()
5144 ew32(ICS, adapter->rx_ring->ims_val); in e1000_watchdog_task()
7070 kfree(adapter->rx_ring); in e1000_probe()
7142 kfree(adapter->rx_ring); in e1000_remove()