• Home
  • Raw
  • Download

Lines Matching refs:ndev

29 	struct net_device *ndev;  in xge_get_resources()  local
36 ndev = pdata->ndev; in xge_get_resources()
51 if (!device_get_mac_address(dev, ndev->dev_addr, ETH_ALEN)) in xge_get_resources()
52 eth_hw_addr_random(ndev); in xge_get_resources()
54 memcpy(ndev->perm_addr, ndev->dev_addr, ndev->addr_len); in xge_get_resources()
78 static int xge_refill_buffers(struct net_device *ndev, u32 nbuf) in xge_refill_buffers() argument
80 struct xge_pdata *pdata = netdev_priv(ndev); in xge_refill_buffers()
96 skb = netdev_alloc_skb(ndev, len); in xge_refill_buffers()
102 netdev_err(ndev, "DMA mapping error\n"); in xge_refill_buffers()
128 static int xge_init_hw(struct net_device *ndev) in xge_init_hw() argument
130 struct xge_pdata *pdata = netdev_priv(ndev); in xge_init_hw()
133 ret = xge_port_reset(ndev); in xge_init_hw()
137 xge_port_init(ndev); in xge_init_hw()
155 static int xge_request_irq(struct net_device *ndev) in xge_request_irq() argument
157 struct xge_pdata *pdata = netdev_priv(ndev); in xge_request_irq()
160 snprintf(pdata->irq_name, IRQ_ID_SIZE, "%s", ndev->name); in xge_request_irq()
165 netdev_err(ndev, "Failed to request irq %s\n", pdata->irq_name); in xge_request_irq()
170 static void xge_free_irq(struct net_device *ndev) in xge_free_irq() argument
172 struct xge_pdata *pdata = netdev_priv(ndev); in xge_free_irq()
186 static netdev_tx_t xge_start_xmit(struct sk_buff *skb, struct net_device *ndev) in xge_start_xmit() argument
188 struct xge_pdata *pdata = netdev_priv(ndev); in xge_start_xmit()
204 netif_stop_queue(ndev); in xge_start_xmit()
250 static void xge_txc_poll(struct net_device *ndev) in xge_txc_poll() argument
252 struct xge_pdata *pdata = netdev_priv(ndev); in xge_txc_poll()
293 if (netif_queue_stopped(ndev)) in xge_txc_poll()
294 netif_wake_queue(ndev); in xge_txc_poll()
299 static int xge_rx_poll(struct net_device *ndev, unsigned int budget) in xge_rx_poll() argument
301 struct xge_pdata *pdata = netdev_priv(ndev); in xge_rx_poll()
343 skb->protocol = eth_type_trans(skb, ndev); in xge_rx_poll()
349 ret = xge_refill_buffers(ndev, 1); in xge_rx_poll()
365 static void xge_delete_desc_ring(struct net_device *ndev, in xge_delete_desc_ring() argument
368 struct xge_pdata *pdata = netdev_priv(ndev); in xge_delete_desc_ring()
383 static void xge_free_buffers(struct net_device *ndev) in xge_free_buffers() argument
385 struct xge_pdata *pdata = netdev_priv(ndev); in xge_free_buffers()
405 static void xge_delete_desc_rings(struct net_device *ndev) in xge_delete_desc_rings() argument
407 struct xge_pdata *pdata = netdev_priv(ndev); in xge_delete_desc_rings()
409 xge_txc_poll(ndev); in xge_delete_desc_rings()
410 xge_delete_desc_ring(ndev, pdata->tx_ring); in xge_delete_desc_rings()
412 xge_rx_poll(ndev, 64); in xge_delete_desc_rings()
413 xge_free_buffers(ndev); in xge_delete_desc_rings()
414 xge_delete_desc_ring(ndev, pdata->rx_ring); in xge_delete_desc_rings()
417 static struct xge_desc_ring *xge_create_desc_ring(struct net_device *ndev) in xge_create_desc_ring() argument
419 struct xge_pdata *pdata = netdev_priv(ndev); in xge_create_desc_ring()
428 ring->ndev = ndev; in xge_create_desc_ring()
446 xge_delete_desc_ring(ndev, ring); in xge_create_desc_ring()
451 static int xge_create_desc_rings(struct net_device *ndev) in xge_create_desc_rings() argument
453 struct xge_pdata *pdata = netdev_priv(ndev); in xge_create_desc_rings()
458 ring = xge_create_desc_ring(ndev); in xge_create_desc_rings()
466 ring = xge_create_desc_ring(ndev); in xge_create_desc_rings()
473 ret = xge_refill_buffers(ndev, XGENE_ENET_NUM_DESC); in xge_create_desc_rings()
479 xge_delete_desc_rings(ndev); in xge_create_desc_rings()
484 static int xge_open(struct net_device *ndev) in xge_open() argument
486 struct xge_pdata *pdata = netdev_priv(ndev); in xge_open()
489 ret = xge_create_desc_rings(ndev); in xge_open()
494 ret = xge_request_irq(ndev); in xge_open()
501 phy_start(ndev->phydev); in xge_open()
503 netif_start_queue(ndev); in xge_open()
508 static int xge_close(struct net_device *ndev) in xge_close() argument
510 struct xge_pdata *pdata = netdev_priv(ndev); in xge_close()
512 netif_stop_queue(ndev); in xge_close()
514 phy_stop(ndev->phydev); in xge_close()
517 xge_free_irq(ndev); in xge_close()
519 xge_delete_desc_rings(ndev); in xge_close()
526 struct net_device *ndev = napi->dev; in xge_napi() local
530 pdata = netdev_priv(ndev); in xge_napi()
532 xge_txc_poll(ndev); in xge_napi()
533 processed = xge_rx_poll(ndev, budget); in xge_napi()
543 static int xge_set_mac_addr(struct net_device *ndev, void *addr) in xge_set_mac_addr() argument
545 struct xge_pdata *pdata = netdev_priv(ndev); in xge_set_mac_addr()
548 ret = eth_mac_addr(ndev, addr); in xge_set_mac_addr()
565 static void xge_free_pending_skb(struct net_device *ndev) in xge_free_pending_skb() argument
567 struct xge_pdata *pdata = netdev_priv(ndev); in xge_free_pending_skb()
592 static void xge_timeout(struct net_device *ndev) in xge_timeout() argument
594 struct xge_pdata *pdata = netdev_priv(ndev); in xge_timeout()
598 if (!netif_running(ndev)) in xge_timeout()
601 netif_stop_queue(ndev); in xge_timeout()
606 xge_txc_poll(ndev); in xge_timeout()
607 xge_free_pending_skb(ndev); in xge_timeout()
617 netif_start_queue(ndev); in xge_timeout()
623 static void xge_get_stats64(struct net_device *ndev, in xge_get_stats64() argument
626 struct xge_pdata *pdata = netdev_priv(ndev); in xge_get_stats64()
649 struct net_device *ndev; in xge_probe() local
653 ndev = alloc_etherdev(sizeof(*pdata)); in xge_probe()
654 if (!ndev) in xge_probe()
657 pdata = netdev_priv(ndev); in xge_probe()
660 pdata->ndev = ndev; in xge_probe()
661 SET_NETDEV_DEV(ndev, dev); in xge_probe()
663 ndev->netdev_ops = &xgene_ndev_ops; in xge_probe()
665 ndev->features |= NETIF_F_GSO | in xge_probe()
672 ndev->hw_features = ndev->features; in xge_probe()
673 xge_set_ethtool_ops(ndev); in xge_probe()
677 netdev_err(ndev, "No usable DMA configuration\n"); in xge_probe()
681 ret = xge_init_hw(ndev); in xge_probe()
685 ret = xge_mdio_config(ndev); in xge_probe()
689 netif_napi_add(ndev, &pdata->napi, xge_napi, NAPI_POLL_WEIGHT); in xge_probe()
691 ret = register_netdev(ndev); in xge_probe()
693 netdev_err(ndev, "Failed to register netdev\n"); in xge_probe()
700 free_netdev(ndev); in xge_probe()
708 struct net_device *ndev; in xge_remove() local
711 ndev = pdata->ndev; in xge_remove()
714 if (netif_running(ndev)) in xge_remove()
715 dev_close(ndev); in xge_remove()
718 xge_mdio_remove(ndev); in xge_remove()
719 unregister_netdev(ndev); in xge_remove()
720 free_netdev(ndev); in xge_remove()
733 if (!pdata->ndev) in xge_shutdown()