Lines Matching +full:0 +full:x0000001
44 #define DMA_ADDR_HIGH(dma_addr) ((u32)(((dma_addr) >> 32) & 0xFFFFFFFF))
46 #define DMA_ADDR_HIGH(dma_addr) ((u32)(0))
48 #define DMA_ADDR_LOW(dma_addr) ((u32)((dma_addr) & 0xFFFFFFFF))
55 #define TSNEP_TX_TYPE_MAP BIT(0)
73 #define TSNEP_XDP_TX BIT(0)
93 if (active != 0) in tsnep_irq()
97 if ((active & ECM_INT_LINK) != 0) in tsnep_irq()
100 /* handle TX/RX queue 0 interrupt */ in tsnep_irq()
101 if ((active & adapter->queue[0].irq_mask) != 0) { in tsnep_irq()
102 if (napi_schedule_prep(&adapter->queue[0].napi)) { in tsnep_irq()
103 tsnep_disable_irq(adapter, adapter->queue[0].irq_mask); in tsnep_irq()
105 __napi_schedule(&adapter->queue[0].napi); in tsnep_irq()
139 return 0; in tsnep_set_irq_coalesce()
167 if (retval != 0) in tsnep_mdiobus_read()
189 if (retval != 0) in tsnep_mdiobus_write()
192 return 0; in tsnep_mdiobus_write()
235 speed = 0; in tsnep_phy_loopback()
263 memset(ðtool_keee, 0, sizeof(ethtool_keee)); in tsnep_phy_open()
269 return 0; in tsnep_phy_open()
283 memset(tx->entry, 0, sizeof(tx->entry)); in tsnep_tx_ring_cleanup()
285 for (i = 0; i < TSNEP_RING_PAGE_COUNT; i++) { in tsnep_tx_ring_cleanup()
290 tx->page_dma[i] = 0; in tsnep_tx_ring_cleanup()
303 for (i = 0; i < TSNEP_RING_PAGE_COUNT; i++) { in tsnep_tx_ring_create()
311 for (j = 0; j < TSNEP_RING_ENTRIES_PER_PAGE; j++) { in tsnep_tx_ring_create()
321 for (i = 0; i < TSNEP_RING_SIZE; i++) { in tsnep_tx_ring_create()
327 return 0; in tsnep_tx_ring_create()
338 dma = tx->entry[0].desc_dma | TSNEP_RESET_OWNER_COUNTER; in tsnep_tx_init()
341 tx->write = 0; in tsnep_tx_init()
342 tx->read = 0; in tsnep_tx_init()
371 ((val & TSNEP_CONTROL_TX_ENABLE) == 0), 10000, in tsnep_tx_disable()
386 entry->properties = 0; in tsnep_tx_activate()
421 if (tx->increment_owner_counter < 0) in tsnep_tx_activate()
458 *dma = skb_frag_dma_map(dmadev, frag, 0, len, DMA_TO_DEVICE); in tsnep_tx_map_frag()
477 mapped = 0; in tsnep_tx_map_frag()
489 int map_len = 0; in tsnep_tx_map()
493 for (i = 0; i < count; i++) { in tsnep_tx_map()
508 mapped = 0; in tsnep_tx_map()
518 if (mapped < 0) in tsnep_tx_map()
538 int map_len = 0; in tsnep_tx_unmap()
541 for (i = 0; i < count; i++) { in tsnep_tx_unmap()
556 entry->len = 0; in tsnep_tx_unmap()
573 if (skb_shinfo(skb)->nr_frags > 0) in tsnep_xmit_frame_ring()
595 if (retval < 0) { in tsnep_xmit_frame_ring()
606 for (i = 0; i < count; i++) in tsnep_xmit_frame_ring()
634 int map_len = 0; in tsnep_xdp_tx_map()
641 for (i = 0; i < count; i++) { in tsnep_xdp_tx_map()
704 if (retval < 0) { in tsnep_xdp_xmit_frame_ring()
714 for (i = 0; i < count; i++) in tsnep_xdp_xmit_frame_ring()
806 for (i = 0; i < batch; i++) in tsnep_xdp_xmit_zc()
823 int xsk_frames = 0; in tsnep_tx_poll()
848 skb_shinfo(entry->skb)->nr_frags > 0) in tsnep_tx_poll()
870 memset(&hwtstamps, 0, sizeof(hwtstamps)); in tsnep_tx_poll()
908 return budget != 0; in tsnep_tx_poll()
943 return 0; in tsnep_tx_open()
957 for (i = 0; i < TSNEP_RING_SIZE; i++) { in tsnep_rx_ring_cleanup()
971 memset(rx->entry, 0, sizeof(rx->entry)); in tsnep_rx_ring_cleanup()
973 for (i = 0; i < TSNEP_RING_PAGE_COUNT; i++) { in tsnep_rx_ring_cleanup()
978 rx->page_dma[i] = 0; in tsnep_rx_ring_cleanup()
987 struct page_pool_params pp_params = { 0 }; in tsnep_rx_ring_create()
992 for (i = 0; i < TSNEP_RING_PAGE_COUNT; i++) { in tsnep_rx_ring_create()
1000 for (j = 0; j < TSNEP_RING_ENTRIES_PER_PAGE; j++) { in tsnep_rx_ring_create()
1011 pp_params.order = 0; in tsnep_rx_ring_create()
1025 for (i = 0; i < TSNEP_RING_SIZE; i++) { in tsnep_rx_ring_create()
1031 return 0; in tsnep_rx_ring_create()
1042 dma = rx->entry[0].desc_dma | TSNEP_RESET_OWNER_COUNTER; in tsnep_rx_init()
1045 rx->write = 0; in tsnep_rx_init()
1046 rx->read = 0; in tsnep_rx_init()
1065 ((val & TSNEP_CONTROL_RX_ENABLE) == 0), 10000, in tsnep_rx_disable()
1099 for (i = 0; i < TSNEP_RING_SIZE - 1; i++) { in tsnep_rx_alloc_page_buffer()
1108 return 0; in tsnep_rx_alloc_page_buffer()
1130 return 0; in tsnep_rx_alloc_buffer()
1154 if (rx->increment_owner_counter < 0) in tsnep_rx_activate()
1174 for (i = 0; i < count && !alloc_failed; i++) { in tsnep_rx_alloc()
1182 if (i == 0 && reuse) in tsnep_rx_alloc()
1232 for (i = 0; i < allocated; i++) { in tsnep_rx_alloc_zc()
1239 if (i == 0) { in tsnep_rx_alloc_zc()
1258 for (i = 0; i < TSNEP_RING_SIZE; i++) { in tsnep_rx_free_zc()
1306 if (xdp_do_redirect(rx->adapter->netdev, xdp, prog) < 0) in tsnep_xdp_run_prog()
1341 if (xdp_do_redirect(rx->adapter->netdev, xdp, prog) < 0) in tsnep_xdp_run_prog_zc()
1402 memset(hwtstamps, 0, sizeof(*hwtstamps)); in tsnep_build_skb()
1445 int xdp_status = 0; in tsnep_rx_poll()
1446 int done = 0; in tsnep_rx_poll()
1548 int xdp_status = 0; in tsnep_rx_poll_zc()
1550 int done = 0; in tsnep_rx_poll_zc()
1701 return 0; in tsnep_rx_open()
1723 for (i = 0; i < TSNEP_RING_SIZE; i++) { in tsnep_rx_reopen()
1729 entry->desc->properties = 0; in tsnep_rx_reopen()
1730 entry->desc_wb->properties = 0; in tsnep_rx_reopen()
1759 for (i = 0; i < TSNEP_RING_SIZE; i++) { in tsnep_rx_reopen_xsk()
1775 entry->desc->properties = 0; in tsnep_rx_reopen_xsk()
1776 entry->desc_wb->properties = 0; in tsnep_rx_reopen_xsk()
1812 int done = 0; in tsnep_poll()
1817 /* handle case where we are called by netpoll with a budget of 0 */ in tsnep_poll()
1818 if (unlikely(budget <= 0)) in tsnep_poll()
1874 retval = request_irq(queue->irq, handler, 0, queue->name, dev); in tsnep_request_irq()
1877 memset(queue->name, 0, sizeof(queue->name)); in tsnep_request_irq()
1896 memset(queue->name, 0, sizeof(queue->name)); in tsnep_free_irq()
1931 rx->tx_queue_index = 0; in tsnep_queue_open()
1966 return 0; in tsnep_queue_open()
2024 for (i = 0; i < adapter->num_queues; i++) { in tsnep_netdev_open()
2036 retval = tsnep_queue_open(adapter, &adapter->queue[i], i == 0); in tsnep_netdev_open()
2055 for (i = 0; i < adapter->num_queues; i++) in tsnep_netdev_open()
2058 return 0; in tsnep_netdev_open()
2063 for (i = 0; i < adapter->num_queues; i++) { in tsnep_netdev_open()
2064 tsnep_queue_close(&adapter->queue[i], i == 0); in tsnep_netdev_open()
2082 for (i = 0; i < adapter->num_queues; i++) { in tsnep_netdev_close()
2085 tsnep_queue_close(&adapter->queue[i], i == 0); in tsnep_netdev_close()
2093 return 0; in tsnep_netdev_close()
2133 return 0; in tsnep_enable_xsk()
2166 queue_mapping = 0; in tsnep_netdev_xmit_frame()
2185 u16 rx_filter = 0; in tsnep_netdev_set_multicast()
2205 for (i = 0; i < adapter->num_tx_queues; i++) { in tsnep_netdev_get_stats64()
2210 for (i = 0; i < adapter->num_rx_queues; i++) { in tsnep_netdev_get_stats64()
2267 return 0; in tsnep_netdev_set_mac_address()
2276 int retval = 0; in tsnep_netdev_set_features()
2345 for (nxmit = 0; nxmit < n; nxmit++) { in tsnep_netdev_xdp_xmit()
2380 return 0; in tsnep_netdev_xsk_wakeup()
2406 iowrite16(0, adapter->addr + TSNEP_RX_FILTER); in tsnep_mac_init()
2430 return 0; in tsnep_mac_init()
2441 return 0; in tsnep_mdio_init()
2463 adapter->mdiobus->phy_mask = 0x0000001; in tsnep_mdio_init()
2484 0); in tsnep_phy_init()
2492 return 0; in tsnep_phy_init()
2504 retval = platform_get_irq(adapter->pdev, 0); in tsnep_queue_init()
2507 if (retval < 0) in tsnep_queue_init()
2512 adapter->queue[0].adapter = adapter; in tsnep_queue_init()
2513 adapter->queue[0].irq = retval; in tsnep_queue_init()
2514 adapter->queue[0].tx = &adapter->tx[0]; in tsnep_queue_init()
2515 adapter->queue[0].tx->adapter = adapter; in tsnep_queue_init()
2516 adapter->queue[0].tx->addr = adapter->addr + TSNEP_QUEUE(0); in tsnep_queue_init()
2517 adapter->queue[0].tx->queue_index = 0; in tsnep_queue_init()
2518 adapter->queue[0].rx = &adapter->rx[0]; in tsnep_queue_init()
2519 adapter->queue[0].rx->adapter = adapter; in tsnep_queue_init()
2520 adapter->queue[0].rx->addr = adapter->addr + TSNEP_QUEUE(0); in tsnep_queue_init()
2521 adapter->queue[0].rx->queue_index = 0; in tsnep_queue_init()
2522 adapter->queue[0].irq_mask = irq_mask; in tsnep_queue_init()
2523 adapter->queue[0].irq_delay_addr = adapter->addr + ECM_INT_DELAY; in tsnep_queue_init()
2524 retval = tsnep_set_irq_coalesce(&adapter->queue[0], in tsnep_queue_init()
2526 if (retval < 0) in tsnep_queue_init()
2529 adapter->netdev->irq = adapter->queue[0].irq; in tsnep_queue_init()
2537 if (retval < 0) in tsnep_queue_init()
2559 if (retval < 0) in tsnep_queue_init()
2563 return 0; in tsnep_queue_init()
2599 adapter->addr = devm_platform_get_and_ioremap_resource(pdev, 0, &io); in tsnep_probe()
2671 return 0; in tsnep_probe()