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()
1956 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_intr_msix_rx() local
1961 if (rx_ring->set_itr) { in e1000_intr_msix_rx()
1962 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_intr_msix_rx()
1963 rx_ring->itr_register); in e1000_intr_msix_rx()
1964 rx_ring->set_itr = 0; in e1000_intr_msix_rx()
1984 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_msix() local
2000 rx_ring->ims_val = E1000_IMS_RXQ0; in e1000_configure_msix()
2001 adapter->eiac_mask |= rx_ring->ims_val; in e1000_configure_msix()
2002 if (rx_ring->itr_val) in e1000_configure_msix()
2003 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
2004 rx_ring->itr_register); in e1000_configure_msix()
2006 writel(1, rx_ring->itr_register); in e1000_configure_msix()
2023 if (rx_ring->itr_val) in e1000_configure_msix()
2024 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
2124 snprintf(adapter->rx_ring->name, in e1000_request_msix()
2125 sizeof(adapter->rx_ring->name) - 1, in e1000_request_msix()
2128 memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ); in e1000_request_msix()
2130 e1000_intr_msix_rx, 0, adapter->rx_ring->name, in e1000_request_msix()
2134 adapter->rx_ring->itr_register = adapter->hw.hw_addr + in e1000_request_msix()
2136 adapter->rx_ring->itr_val = adapter->itr; in e1000_request_msix()
2373 int e1000e_setup_rx_resources(struct e1000_ring *rx_ring) in e1000e_setup_rx_resources() argument
2375 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_setup_rx_resources()
2379 size = sizeof(struct e1000_buffer) * rx_ring->count; in e1000e_setup_rx_resources()
2380 rx_ring->buffer_info = vzalloc(size); in e1000e_setup_rx_resources()
2381 if (!rx_ring->buffer_info) in e1000e_setup_rx_resources()
2384 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2385 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2396 rx_ring->size = rx_ring->count * desc_len; in e1000e_setup_rx_resources()
2397 rx_ring->size = ALIGN(rx_ring->size, 4096); in e1000e_setup_rx_resources()
2399 err = e1000_alloc_ring_dma(adapter, rx_ring); in e1000e_setup_rx_resources()
2403 rx_ring->next_to_clean = 0; in e1000e_setup_rx_resources()
2404 rx_ring->next_to_use = 0; in e1000e_setup_rx_resources()
2405 rx_ring->rx_skb_top = NULL; in e1000e_setup_rx_resources()
2410 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2411 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2415 vfree(rx_ring->buffer_info); in e1000e_setup_rx_resources()
2473 void e1000e_free_rx_resources(struct e1000_ring *rx_ring) in e1000e_free_rx_resources() argument
2475 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_free_rx_resources()
2479 e1000_clean_rx_ring(rx_ring); in e1000e_free_rx_resources()
2481 for (i = 0; i < rx_ring->count; i++) in e1000e_free_rx_resources()
2482 kfree(rx_ring->buffer_info[i].ps_pages); in e1000e_free_rx_resources()
2484 vfree(rx_ring->buffer_info); in e1000e_free_rx_resources()
2485 rx_ring->buffer_info = NULL; in e1000e_free_rx_resources()
2487 dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, in e1000e_free_rx_resources()
2488 rx_ring->dma); in e1000e_free_rx_resources()
2489 rx_ring->desc = NULL; in e1000e_free_rx_resources()
2608 adapter->rx_ring->itr_val = new_itr; in e1000_set_itr()
2610 adapter->rx_ring->set_itr = 1; in e1000_set_itr()
2654 adapter->rx_ring = kzalloc(size, GFP_KERNEL); in e1000_alloc_queues()
2655 if (!adapter->rx_ring) in e1000_alloc_queues()
2657 adapter->rx_ring->count = adapter->rx_ring_count; in e1000_alloc_queues()
2658 adapter->rx_ring->adapter = adapter; in e1000_alloc_queues()
2663 kfree(adapter->rx_ring); in e1000_alloc_queues()
2684 (adapter->rx_ring->ims_val & adapter->tx_ring->ims_val)) in e1000e_poll()
2687 adapter->clean_rx(adapter->rx_ring, &work_done, weight); in e1000e_poll()
2699 ew32(IMS, adapter->rx_ring->ims_val); in e1000e_poll()
3197 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_rx() local
3203 rdlen = rx_ring->count * in e1000_configure_rx()
3208 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3212 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3263 rdba = rx_ring->dma; in e1000_configure_rx()
3269 rx_ring->head = adapter->hw.hw_addr + E1000_RDH(0); in e1000_configure_rx()
3270 rx_ring->tail = adapter->hw.hw_addr + E1000_RDT(0); in e1000_configure_rx()
3272 writel(0, rx_ring->head); in e1000_configure_rx()
3274 e1000e_update_rdt_wa(rx_ring, 0); in e1000_configure_rx()
3276 writel(0, rx_ring->tail); in e1000_configure_rx()
3754 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure() local
3767 adapter->alloc_rx_buf(rx_ring, e1000_desc_unused(rx_ring), GFP_KERNEL); in e1000_configure()
4261 e1000_clean_rx_ring(adapter->rx_ring); in e1000e_down()
4535 err = e1000e_setup_rx_resources(adapter->rx_ring); in e1000_open()
4605 e1000e_free_rx_resources(adapter->rx_ring); in e1000_open()
4650 e1000e_free_rx_resources(adapter->rx_ring); in e1000_close()
5293 ew32(ICS, adapter->rx_ring->ims_val); in e1000_watchdog_task()
7291 kfree(adapter->rx_ring); in e1000_probe()
7363 kfree(adapter->rx_ring); in e1000_remove()