Lines Matching refs:rx_ring

204 	struct e1000_ring *rx_ring = adapter->rx_ring;  in e1000e_dump()  local
320 0, rx_ring->next_to_use, rx_ring->next_to_clean); in e1000e_dump()
356 for (i = 0; i < rx_ring->count; i++) { in e1000e_dump()
358 buffer_info = &rx_ring->buffer_info[i]; in e1000e_dump()
359 rx_desc_ps = E1000_RX_DESC_PS(*rx_ring, i); in e1000e_dump()
364 if (i == rx_ring->next_to_use) in e1000e_dump()
366 else if (i == rx_ring->next_to_clean) in e1000e_dump()
422 for (i = 0; i < rx_ring->count; i++) { in e1000e_dump()
425 buffer_info = &rx_ring->buffer_info[i]; in e1000e_dump()
426 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000e_dump()
430 if (i == rx_ring->next_to_use) in e1000e_dump()
432 else if (i == rx_ring->next_to_clean) in e1000e_dump()
603 static void e1000e_update_rdt_wa(struct e1000_ring *rx_ring, unsigned int i) in e1000e_update_rdt_wa() argument
605 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_update_rdt_wa()
609 writel(i, rx_ring->tail); in e1000e_update_rdt_wa()
611 if (unlikely(i != readl(rx_ring->tail))) { in e1000e_update_rdt_wa()
643 static void e1000_alloc_rx_buffers(struct e1000_ring *rx_ring, in e1000_alloc_rx_buffers() argument
646 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_rx_buffers()
655 i = rx_ring->next_to_use; in e1000_alloc_rx_buffers()
656 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers()
683 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_alloc_rx_buffers()
694 e1000e_update_rdt_wa(rx_ring, i); in e1000_alloc_rx_buffers()
696 writel(i, rx_ring->tail); in e1000_alloc_rx_buffers()
699 if (i == rx_ring->count) in e1000_alloc_rx_buffers()
701 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers()
704 rx_ring->next_to_use = i; in e1000_alloc_rx_buffers()
713 static void e1000_alloc_rx_buffers_ps(struct e1000_ring *rx_ring, in e1000_alloc_rx_buffers_ps() argument
716 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_rx_buffers_ps()
725 i = rx_ring->next_to_use; in e1000_alloc_rx_buffers_ps()
726 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers_ps()
729 rx_desc = E1000_RX_DESC_PS(*rx_ring, i); in e1000_alloc_rx_buffers_ps()
796 e1000e_update_rdt_wa(rx_ring, i << 1); in e1000_alloc_rx_buffers_ps()
798 writel(i << 1, rx_ring->tail); in e1000_alloc_rx_buffers_ps()
802 if (i == rx_ring->count) in e1000_alloc_rx_buffers_ps()
804 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers_ps()
808 rx_ring->next_to_use = i; in e1000_alloc_rx_buffers_ps()
818 static void e1000_alloc_jumbo_rx_buffers(struct e1000_ring *rx_ring, in e1000_alloc_jumbo_rx_buffers() argument
821 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_jumbo_rx_buffers()
830 i = rx_ring->next_to_use; in e1000_alloc_jumbo_rx_buffers()
831 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_jumbo_rx_buffers()
869 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_alloc_jumbo_rx_buffers()
872 if (unlikely(++i == rx_ring->count)) in e1000_alloc_jumbo_rx_buffers()
874 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_jumbo_rx_buffers()
877 if (likely(rx_ring->next_to_use != i)) { in e1000_alloc_jumbo_rx_buffers()
878 rx_ring->next_to_use = i; in e1000_alloc_jumbo_rx_buffers()
880 i = (rx_ring->count - 1); in e1000_alloc_jumbo_rx_buffers()
889 e1000e_update_rdt_wa(rx_ring, i); in e1000_alloc_jumbo_rx_buffers()
891 writel(i, rx_ring->tail); in e1000_alloc_jumbo_rx_buffers()
911 static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_rx_irq() argument
914 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_irq()
926 i = rx_ring->next_to_clean; in e1000_clean_rx_irq()
927 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_rx_irq()
929 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq()
945 if (i == rx_ring->count) in e1000_clean_rx_irq()
947 next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_rx_irq()
950 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq()
1037 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_rx_irq()
1048 rx_ring->next_to_clean = i; in e1000_clean_rx_irq()
1050 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_rx_irq()
1052 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_rx_irq()
1307 static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_rx_irq_ps() argument
1310 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_irq_ps()
1324 i = rx_ring->next_to_clean; in e1000_clean_rx_irq_ps()
1325 rx_desc = E1000_RX_DESC_PS(*rx_ring, i); in e1000_clean_rx_irq_ps()
1327 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq_ps()
1340 if (i == rx_ring->count) in e1000_clean_rx_irq_ps()
1342 next_rxd = E1000_RX_DESC_PS(*rx_ring, i); in e1000_clean_rx_irq_ps()
1345 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq_ps()
1471 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_rx_irq_ps()
1482 rx_ring->next_to_clean = i; in e1000_clean_rx_irq_ps()
1484 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_rx_irq_ps()
1486 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_rx_irq_ps()
1511 static bool e1000_clean_jumbo_rx_irq(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_jumbo_rx_irq() argument
1514 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_jumbo_rx_irq()
1526 i = rx_ring->next_to_clean; in e1000_clean_jumbo_rx_irq()
1527 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_jumbo_rx_irq()
1529 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_jumbo_rx_irq()
1543 if (i == rx_ring->count) in e1000_clean_jumbo_rx_irq()
1545 next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_jumbo_rx_irq()
1548 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_jumbo_rx_irq()
1565 if (rx_ring->rx_skb_top) in e1000_clean_jumbo_rx_irq()
1566 dev_kfree_skb_irq(rx_ring->rx_skb_top); in e1000_clean_jumbo_rx_irq()
1567 rx_ring->rx_skb_top = NULL; in e1000_clean_jumbo_rx_irq()
1570 #define rxtop (rx_ring->rx_skb_top) in e1000_clean_jumbo_rx_irq()
1652 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_jumbo_rx_irq()
1663 rx_ring->next_to_clean = i; in e1000_clean_jumbo_rx_irq()
1665 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_jumbo_rx_irq()
1667 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_jumbo_rx_irq()
1678 static void e1000_clean_rx_ring(struct e1000_ring *rx_ring) in e1000_clean_rx_ring() argument
1680 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_ring()
1687 for (i = 0; i < rx_ring->count; i++) { in e1000_clean_rx_ring()
1688 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_ring()
1727 if (rx_ring->rx_skb_top) { in e1000_clean_rx_ring()
1728 dev_kfree_skb(rx_ring->rx_skb_top); in e1000_clean_rx_ring()
1729 rx_ring->rx_skb_top = NULL; in e1000_clean_rx_ring()
1733 memset(rx_ring->desc, 0, rx_ring->size); in e1000_clean_rx_ring()
1735 rx_ring->next_to_clean = 0; in e1000_clean_rx_ring()
1736 rx_ring->next_to_use = 0; in e1000_clean_rx_ring()
1946 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_intr_msix_rx() local
1951 if (rx_ring->set_itr) { in e1000_intr_msix_rx()
1952 u32 itr = rx_ring->itr_val ? in e1000_intr_msix_rx()
1953 1000000000 / (rx_ring->itr_val * 256) : 0; in e1000_intr_msix_rx()
1955 writel(itr, rx_ring->itr_register); in e1000_intr_msix_rx()
1956 rx_ring->set_itr = 0; in e1000_intr_msix_rx()
1977 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_msix() local
1993 rx_ring->ims_val = E1000_IMS_RXQ0; in e1000_configure_msix()
1994 adapter->eiac_mask |= rx_ring->ims_val; in e1000_configure_msix()
1995 if (rx_ring->itr_val) in e1000_configure_msix()
1996 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
1997 rx_ring->itr_register); in e1000_configure_msix()
1999 writel(1, rx_ring->itr_register); in e1000_configure_msix()
2016 if (rx_ring->itr_val) in e1000_configure_msix()
2017 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
2115 snprintf(adapter->rx_ring->name, in e1000_request_msix()
2116 sizeof(adapter->rx_ring->name) - 1, in e1000_request_msix()
2119 memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ); in e1000_request_msix()
2121 e1000_intr_msix_rx, 0, adapter->rx_ring->name, in e1000_request_msix()
2125 adapter->rx_ring->itr_register = adapter->hw.hw_addr + in e1000_request_msix()
2127 adapter->rx_ring->itr_val = adapter->itr; in e1000_request_msix()
2369 int e1000e_setup_rx_resources(struct e1000_ring *rx_ring) in e1000e_setup_rx_resources() argument
2371 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_setup_rx_resources()
2375 size = sizeof(struct e1000_buffer) * rx_ring->count; in e1000e_setup_rx_resources()
2376 rx_ring->buffer_info = vzalloc(size); in e1000e_setup_rx_resources()
2377 if (!rx_ring->buffer_info) in e1000e_setup_rx_resources()
2380 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2381 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2392 rx_ring->size = rx_ring->count * desc_len; in e1000e_setup_rx_resources()
2393 rx_ring->size = ALIGN(rx_ring->size, 4096); in e1000e_setup_rx_resources()
2395 err = e1000_alloc_ring_dma(adapter, rx_ring); in e1000e_setup_rx_resources()
2399 rx_ring->next_to_clean = 0; in e1000e_setup_rx_resources()
2400 rx_ring->next_to_use = 0; in e1000e_setup_rx_resources()
2401 rx_ring->rx_skb_top = NULL; in e1000e_setup_rx_resources()
2406 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2407 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2411 vfree(rx_ring->buffer_info); in e1000e_setup_rx_resources()
2469 void e1000e_free_rx_resources(struct e1000_ring *rx_ring) in e1000e_free_rx_resources() argument
2471 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_free_rx_resources()
2475 e1000_clean_rx_ring(rx_ring); in e1000e_free_rx_resources()
2477 for (i = 0; i < rx_ring->count; i++) in e1000e_free_rx_resources()
2478 kfree(rx_ring->buffer_info[i].ps_pages); in e1000e_free_rx_resources()
2480 vfree(rx_ring->buffer_info); in e1000e_free_rx_resources()
2481 rx_ring->buffer_info = NULL; in e1000e_free_rx_resources()
2483 dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, in e1000e_free_rx_resources()
2484 rx_ring->dma); in e1000e_free_rx_resources()
2485 rx_ring->desc = NULL; in e1000e_free_rx_resources()
2603 adapter->rx_ring->itr_val = new_itr; in e1000_set_itr()
2605 adapter->rx_ring->set_itr = 1; in e1000_set_itr()
2649 adapter->rx_ring = kzalloc(size, GFP_KERNEL); in e1000_alloc_queues()
2650 if (!adapter->rx_ring) in e1000_alloc_queues()
2652 adapter->rx_ring->count = adapter->rx_ring_count; in e1000_alloc_queues()
2653 adapter->rx_ring->adapter = adapter; in e1000_alloc_queues()
2658 kfree(adapter->rx_ring); in e1000_alloc_queues()
2679 (adapter->rx_ring->ims_val & adapter->tx_ring->ims_val)) in e1000e_poll()
2682 adapter->clean_rx(adapter->rx_ring, &work_done, budget); in e1000e_poll()
2695 ew32(IMS, adapter->rx_ring->ims_val); in e1000e_poll()
3199 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_rx() local
3205 rdlen = rx_ring->count * in e1000_configure_rx()
3210 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3214 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3257 rdba = rx_ring->dma; in e1000_configure_rx()
3263 rx_ring->head = adapter->hw.hw_addr + E1000_RDH(0); in e1000_configure_rx()
3264 rx_ring->tail = adapter->hw.hw_addr + E1000_RDT(0); in e1000_configure_rx()
3266 writel(0, rx_ring->head); in e1000_configure_rx()
3268 e1000e_update_rdt_wa(rx_ring, 0); in e1000_configure_rx()
3270 writel(0, rx_ring->tail); in e1000_configure_rx()
3760 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure() local
3773 adapter->alloc_rx_buf(rx_ring, e1000_desc_unused(rx_ring), GFP_KERNEL); in e1000_configure()
4331 e1000_clean_rx_ring(adapter->rx_ring); in e1000e_down()
4642 err = e1000e_setup_rx_resources(adapter->rx_ring); in e1000e_open()
4706 e1000e_free_rx_resources(adapter->rx_ring); in e1000e_open()
4751 e1000e_free_rx_resources(adapter->rx_ring); in e1000e_close()
5418 ew32(ICS, adapter->rx_ring->ims_val); in e1000_watchdog_task()
7710 kfree(adapter->rx_ring); in e1000_probe()
7777 kfree(adapter->rx_ring); in e1000_remove()