Lines Matching refs:rx_ring

208 	struct e1000_ring *rx_ring = adapter->rx_ring;  in e1000e_dump()  local
324 0, rx_ring->next_to_use, rx_ring->next_to_clean); in e1000e_dump()
360 for (i = 0; i < rx_ring->count; i++) { in e1000e_dump()
362 buffer_info = &rx_ring->buffer_info[i]; in e1000e_dump()
363 rx_desc_ps = E1000_RX_DESC_PS(*rx_ring, i); in e1000e_dump()
368 if (i == rx_ring->next_to_use) in e1000e_dump()
370 else if (i == rx_ring->next_to_clean) in e1000e_dump()
426 for (i = 0; i < rx_ring->count; i++) { in e1000e_dump()
429 buffer_info = &rx_ring->buffer_info[i]; in e1000e_dump()
430 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000e_dump()
434 if (i == rx_ring->next_to_use) in e1000e_dump()
436 else if (i == rx_ring->next_to_clean) in e1000e_dump()
606 static void e1000e_update_rdt_wa(struct e1000_ring *rx_ring, unsigned int i) in e1000e_update_rdt_wa() argument
608 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_update_rdt_wa()
612 writel(i, rx_ring->tail); in e1000e_update_rdt_wa()
614 if (unlikely(!ret_val && (i != readl(rx_ring->tail)))) { in e1000e_update_rdt_wa()
644 static void e1000_alloc_rx_buffers(struct e1000_ring *rx_ring, in e1000_alloc_rx_buffers() argument
647 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_rx_buffers()
656 i = rx_ring->next_to_use; in e1000_alloc_rx_buffers()
657 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers()
684 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_alloc_rx_buffers()
695 e1000e_update_rdt_wa(rx_ring, i); in e1000_alloc_rx_buffers()
697 writel(i, rx_ring->tail); in e1000_alloc_rx_buffers()
700 if (i == rx_ring->count) in e1000_alloc_rx_buffers()
702 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers()
705 rx_ring->next_to_use = i; in e1000_alloc_rx_buffers()
712 static void e1000_alloc_rx_buffers_ps(struct e1000_ring *rx_ring, in e1000_alloc_rx_buffers_ps() argument
715 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_rx_buffers_ps()
724 i = rx_ring->next_to_use; in e1000_alloc_rx_buffers_ps()
725 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers_ps()
728 rx_desc = E1000_RX_DESC_PS(*rx_ring, i); in e1000_alloc_rx_buffers_ps()
795 e1000e_update_rdt_wa(rx_ring, i << 1); in e1000_alloc_rx_buffers_ps()
797 writel(i << 1, rx_ring->tail); in e1000_alloc_rx_buffers_ps()
801 if (i == rx_ring->count) in e1000_alloc_rx_buffers_ps()
803 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_rx_buffers_ps()
807 rx_ring->next_to_use = i; in e1000_alloc_rx_buffers_ps()
816 static void e1000_alloc_jumbo_rx_buffers(struct e1000_ring *rx_ring, in e1000_alloc_jumbo_rx_buffers() argument
819 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_alloc_jumbo_rx_buffers()
828 i = rx_ring->next_to_use; in e1000_alloc_jumbo_rx_buffers()
829 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_jumbo_rx_buffers()
867 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_alloc_jumbo_rx_buffers()
870 if (unlikely(++i == rx_ring->count)) in e1000_alloc_jumbo_rx_buffers()
872 buffer_info = &rx_ring->buffer_info[i]; in e1000_alloc_jumbo_rx_buffers()
875 if (likely(rx_ring->next_to_use != i)) { in e1000_alloc_jumbo_rx_buffers()
876 rx_ring->next_to_use = i; in e1000_alloc_jumbo_rx_buffers()
878 i = (rx_ring->count - 1); in e1000_alloc_jumbo_rx_buffers()
887 e1000e_update_rdt_wa(rx_ring, i); in e1000_alloc_jumbo_rx_buffers()
889 writel(i, rx_ring->tail); in e1000_alloc_jumbo_rx_buffers()
907 static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_rx_irq() argument
910 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_irq()
922 i = rx_ring->next_to_clean; in e1000_clean_rx_irq()
923 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_rx_irq()
925 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq()
941 if (i == rx_ring->count) in e1000_clean_rx_irq()
943 next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_rx_irq()
946 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq()
1033 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_rx_irq()
1044 rx_ring->next_to_clean = i; in e1000_clean_rx_irq()
1046 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_rx_irq()
1048 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_rx_irq()
1301 static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_rx_irq_ps() argument
1304 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_irq_ps()
1318 i = rx_ring->next_to_clean; in e1000_clean_rx_irq_ps()
1319 rx_desc = E1000_RX_DESC_PS(*rx_ring, i); in e1000_clean_rx_irq_ps()
1321 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq_ps()
1334 if (i == rx_ring->count) in e1000_clean_rx_irq_ps()
1336 next_rxd = E1000_RX_DESC_PS(*rx_ring, i); in e1000_clean_rx_irq_ps()
1339 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_rx_irq_ps()
1465 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_rx_irq_ps()
1476 rx_ring->next_to_clean = i; in e1000_clean_rx_irq_ps()
1478 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_rx_irq_ps()
1480 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_rx_irq_ps()
1506 static bool e1000_clean_jumbo_rx_irq(struct e1000_ring *rx_ring, int *work_done, in e1000_clean_jumbo_rx_irq() argument
1509 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_jumbo_rx_irq()
1521 i = rx_ring->next_to_clean; in e1000_clean_jumbo_rx_irq()
1522 rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_jumbo_rx_irq()
1524 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_jumbo_rx_irq()
1538 if (i == rx_ring->count) in e1000_clean_jumbo_rx_irq()
1540 next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); in e1000_clean_jumbo_rx_irq()
1543 next_buffer = &rx_ring->buffer_info[i]; in e1000_clean_jumbo_rx_irq()
1560 if (rx_ring->rx_skb_top) in e1000_clean_jumbo_rx_irq()
1561 dev_kfree_skb_irq(rx_ring->rx_skb_top); in e1000_clean_jumbo_rx_irq()
1562 rx_ring->rx_skb_top = NULL; in e1000_clean_jumbo_rx_irq()
1565 #define rxtop (rx_ring->rx_skb_top) in e1000_clean_jumbo_rx_irq()
1647 adapter->alloc_rx_buf(rx_ring, cleaned_count, in e1000_clean_jumbo_rx_irq()
1658 rx_ring->next_to_clean = i; in e1000_clean_jumbo_rx_irq()
1660 cleaned_count = e1000_desc_unused(rx_ring); in e1000_clean_jumbo_rx_irq()
1662 adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); in e1000_clean_jumbo_rx_irq()
1673 static void e1000_clean_rx_ring(struct e1000_ring *rx_ring) in e1000_clean_rx_ring() argument
1675 struct e1000_adapter *adapter = rx_ring->adapter; in e1000_clean_rx_ring()
1682 for (i = 0; i < rx_ring->count; i++) { in e1000_clean_rx_ring()
1683 buffer_info = &rx_ring->buffer_info[i]; in e1000_clean_rx_ring()
1722 if (rx_ring->rx_skb_top) { in e1000_clean_rx_ring()
1723 dev_kfree_skb(rx_ring->rx_skb_top); in e1000_clean_rx_ring()
1724 rx_ring->rx_skb_top = NULL; in e1000_clean_rx_ring()
1728 memset(rx_ring->desc, 0, rx_ring->size); in e1000_clean_rx_ring()
1730 rx_ring->next_to_clean = 0; in e1000_clean_rx_ring()
1731 rx_ring->next_to_use = 0; in e1000_clean_rx_ring()
1941 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_intr_msix_rx() local
1946 if (rx_ring->set_itr) { in e1000_intr_msix_rx()
1947 u32 itr = rx_ring->itr_val ? in e1000_intr_msix_rx()
1948 1000000000 / (rx_ring->itr_val * 256) : 0; in e1000_intr_msix_rx()
1950 writel(itr, rx_ring->itr_register); in e1000_intr_msix_rx()
1951 rx_ring->set_itr = 0; in e1000_intr_msix_rx()
1971 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_msix() local
1987 rx_ring->ims_val = E1000_IMS_RXQ0; in e1000_configure_msix()
1988 adapter->eiac_mask |= rx_ring->ims_val; in e1000_configure_msix()
1989 if (rx_ring->itr_val) in e1000_configure_msix()
1990 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
1991 rx_ring->itr_register); in e1000_configure_msix()
1993 writel(1, rx_ring->itr_register); in e1000_configure_msix()
2010 if (rx_ring->itr_val) in e1000_configure_msix()
2011 writel(1000000000 / (rx_ring->itr_val * 256), in e1000_configure_msix()
2107 snprintf(adapter->rx_ring->name, in e1000_request_msix()
2108 sizeof(adapter->rx_ring->name) - 1, in e1000_request_msix()
2111 memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ); in e1000_request_msix()
2113 e1000_intr_msix_rx, 0, adapter->rx_ring->name, in e1000_request_msix()
2117 adapter->rx_ring->itr_register = adapter->hw.hw_addr + in e1000_request_msix()
2119 adapter->rx_ring->itr_val = adapter->itr; in e1000_request_msix()
2356 int e1000e_setup_rx_resources(struct e1000_ring *rx_ring) in e1000e_setup_rx_resources() argument
2358 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_setup_rx_resources()
2362 size = sizeof(struct e1000_buffer) * rx_ring->count; in e1000e_setup_rx_resources()
2363 rx_ring->buffer_info = vzalloc(size); in e1000e_setup_rx_resources()
2364 if (!rx_ring->buffer_info) in e1000e_setup_rx_resources()
2367 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2368 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2379 rx_ring->size = rx_ring->count * desc_len; in e1000e_setup_rx_resources()
2380 rx_ring->size = ALIGN(rx_ring->size, 4096); in e1000e_setup_rx_resources()
2382 err = e1000_alloc_ring_dma(adapter, rx_ring); in e1000e_setup_rx_resources()
2386 rx_ring->next_to_clean = 0; in e1000e_setup_rx_resources()
2387 rx_ring->next_to_use = 0; in e1000e_setup_rx_resources()
2388 rx_ring->rx_skb_top = NULL; in e1000e_setup_rx_resources()
2393 for (i = 0; i < rx_ring->count; i++) { in e1000e_setup_rx_resources()
2394 buffer_info = &rx_ring->buffer_info[i]; in e1000e_setup_rx_resources()
2398 vfree(rx_ring->buffer_info); in e1000e_setup_rx_resources()
2456 void e1000e_free_rx_resources(struct e1000_ring *rx_ring) in e1000e_free_rx_resources() argument
2458 struct e1000_adapter *adapter = rx_ring->adapter; in e1000e_free_rx_resources()
2462 e1000_clean_rx_ring(rx_ring); in e1000e_free_rx_resources()
2464 for (i = 0; i < rx_ring->count; i++) in e1000e_free_rx_resources()
2465 kfree(rx_ring->buffer_info[i].ps_pages); in e1000e_free_rx_resources()
2467 vfree(rx_ring->buffer_info); in e1000e_free_rx_resources()
2468 rx_ring->buffer_info = NULL; in e1000e_free_rx_resources()
2470 dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, in e1000e_free_rx_resources()
2471 rx_ring->dma); in e1000e_free_rx_resources()
2472 rx_ring->desc = NULL; in e1000e_free_rx_resources()
2591 adapter->rx_ring->itr_val = new_itr; in e1000_set_itr()
2593 adapter->rx_ring->set_itr = 1; in e1000_set_itr()
2637 adapter->rx_ring = kzalloc(size, GFP_KERNEL); in e1000_alloc_queues()
2638 if (!adapter->rx_ring) in e1000_alloc_queues()
2640 adapter->rx_ring->count = adapter->rx_ring_count; in e1000_alloc_queues()
2641 adapter->rx_ring->adapter = adapter; in e1000_alloc_queues()
2646 kfree(adapter->rx_ring); in e1000_alloc_queues()
2667 (adapter->rx_ring->ims_val & adapter->tx_ring->ims_val)) in e1000e_poll()
2670 adapter->clean_rx(adapter->rx_ring, &work_done, weight); in e1000e_poll()
2682 ew32(IMS, adapter->rx_ring->ims_val); in e1000e_poll()
3185 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure_rx() local
3191 rdlen = rx_ring->count * in e1000_configure_rx()
3196 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3200 rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); in e1000_configure_rx()
3243 rdba = rx_ring->dma; in e1000_configure_rx()
3249 rx_ring->head = adapter->hw.hw_addr + E1000_RDH(0); in e1000_configure_rx()
3250 rx_ring->tail = adapter->hw.hw_addr + E1000_RDT(0); in e1000_configure_rx()
3252 writel(0, rx_ring->head); in e1000_configure_rx()
3254 e1000e_update_rdt_wa(rx_ring, 0); in e1000_configure_rx()
3256 writel(0, rx_ring->tail); in e1000_configure_rx()
3743 struct e1000_ring *rx_ring = adapter->rx_ring; in e1000_configure() local
3756 adapter->alloc_rx_buf(rx_ring, e1000_desc_unused(rx_ring), GFP_KERNEL); in e1000_configure()
4306 e1000_clean_rx_ring(adapter->rx_ring); in e1000e_down()
4594 err = e1000e_setup_rx_resources(adapter->rx_ring); in e1000e_open()
4660 e1000e_free_rx_resources(adapter->rx_ring); in e1000e_open()
4705 e1000e_free_rx_resources(adapter->rx_ring); in e1000e_close()
5347 ew32(ICS, adapter->rx_ring->ims_val); in e1000_watchdog_task()
7346 kfree(adapter->rx_ring); in e1000_probe()
7417 kfree(adapter->rx_ring); in e1000_remove()