Lines Matching refs:ndev

48 static void arc_emac_adjust_link(struct net_device *ndev)  in arc_emac_adjust_link()  argument
50 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_adjust_link()
93 static int arc_emac_get_settings(struct net_device *ndev, in arc_emac_get_settings() argument
96 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_get_settings()
112 static int arc_emac_set_settings(struct net_device *ndev, in arc_emac_set_settings() argument
115 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_set_settings()
131 static void arc_emac_get_drvinfo(struct net_device *ndev, in arc_emac_get_drvinfo() argument
134 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_get_drvinfo()
153 static void arc_emac_tx_clean(struct net_device *ndev) in arc_emac_tx_clean() argument
155 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_tx_clean()
156 struct net_device_stats *stats = &ndev->stats; in arc_emac_tx_clean()
186 dma_unmap_single(&ndev->dev, dma_unmap_addr(tx_buff, addr), in arc_emac_tx_clean()
203 if (netif_queue_stopped(ndev) && arc_emac_tx_avail(priv)) in arc_emac_tx_clean()
204 netif_wake_queue(ndev); in arc_emac_tx_clean()
216 static int arc_emac_rx(struct net_device *ndev, int budget) in arc_emac_rx() argument
218 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_rx()
223 struct net_device_stats *stats = &ndev->stats; in arc_emac_rx()
244 netdev_err(ndev, "incomplete packet received\n"); in arc_emac_rx()
258 skb->dev = ndev; in arc_emac_rx()
259 skb->protocol = eth_type_trans(skb, ndev); in arc_emac_rx()
261 dma_unmap_single(&ndev->dev, dma_unmap_addr(rx_buff, addr), in arc_emac_rx()
265 rx_buff->skb = netdev_alloc_skb_ip_align(ndev, in arc_emac_rx()
277 addr = dma_map_single(&ndev->dev, (void *)rx_buff->skb->data, in arc_emac_rx()
279 if (dma_mapping_error(&ndev->dev, addr)) { in arc_emac_rx()
281 netdev_err(ndev, "cannot dma map\n"); in arc_emac_rx()
310 struct net_device *ndev = napi->dev; in arc_emac_poll() local
311 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_poll()
314 arc_emac_tx_clean(ndev); in arc_emac_poll()
316 work_done = arc_emac_rx(ndev, budget); in arc_emac_poll()
337 struct net_device *ndev = dev_instance; in arc_emac_intr() local
338 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_intr()
339 struct net_device_stats *stats = &ndev->stats; in arc_emac_intr()
403 static int arc_emac_open(struct net_device *ndev) in arc_emac_open() argument
405 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_open()
423 rx_buff->skb = netdev_alloc_skb_ip_align(ndev, in arc_emac_open()
428 addr = dma_map_single(&ndev->dev, (void *)rx_buff->skb->data, in arc_emac_open()
430 if (dma_mapping_error(&ndev->dev, addr)) { in arc_emac_open()
431 netdev_err(ndev, "cannot dma map\n"); in arc_emac_open()
476 netif_start_queue(ndev); in arc_emac_open()
488 static void arc_emac_set_rx_mode(struct net_device *ndev) in arc_emac_set_rx_mode() argument
490 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_set_rx_mode()
492 if (ndev->flags & IFF_PROMISC) { in arc_emac_set_rx_mode()
497 if (ndev->flags & IFF_ALLMULTI) { in arc_emac_set_rx_mode()
505 netdev_for_each_mc_addr(ha, ndev) { in arc_emac_set_rx_mode()
524 static int arc_emac_stop(struct net_device *ndev) in arc_emac_stop() argument
526 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_stop()
529 netif_stop_queue(ndev); in arc_emac_stop()
547 static struct net_device_stats *arc_emac_stats(struct net_device *ndev) in arc_emac_stats() argument
549 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_stats()
550 struct net_device_stats *stats = &ndev->stats; in arc_emac_stats()
582 static int arc_emac_tx(struct sk_buff *skb, struct net_device *ndev) in arc_emac_tx() argument
584 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_tx()
586 struct net_device_stats *stats = &ndev->stats; in arc_emac_tx()
596 netif_stop_queue(ndev); in arc_emac_tx()
597 netdev_err(ndev, "BUG! Tx Ring full when queue awake!\n"); in arc_emac_tx()
601 addr = dma_map_single(&ndev->dev, (void *)skb->data, len, in arc_emac_tx()
604 if (unlikely(dma_mapping_error(&ndev->dev, addr))) { in arc_emac_tx()
633 netif_stop_queue(ndev); in arc_emac_tx()
637 netif_start_queue(ndev); in arc_emac_tx()
645 static void arc_emac_set_address_internal(struct net_device *ndev) in arc_emac_set_address_internal() argument
647 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_set_address_internal()
650 addr_low = le32_to_cpu(*(__le32 *) &ndev->dev_addr[0]); in arc_emac_set_address_internal()
651 addr_hi = le16_to_cpu(*(__le16 *) &ndev->dev_addr[4]); in arc_emac_set_address_internal()
668 static int arc_emac_set_address(struct net_device *ndev, void *p) in arc_emac_set_address() argument
672 if (netif_running(ndev)) in arc_emac_set_address()
678 memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len); in arc_emac_set_address()
680 arc_emac_set_address_internal(ndev); in arc_emac_set_address()
697 int arc_emac_probe(struct net_device *ndev, int interface) in arc_emac_probe() argument
699 struct device *dev = ndev->dev.parent; in arc_emac_probe()
730 ndev->netdev_ops = &arc_emac_netdev_ops; in arc_emac_probe()
731 ndev->ethtool_ops = &arc_emac_ethtool_ops; in arc_emac_probe()
732 ndev->watchdog_timeo = TX_TIMEOUT; in arc_emac_probe()
734 ndev->flags &= ~IFF_MULTICAST; in arc_emac_probe()
736 priv = netdev_priv(ndev); in arc_emac_probe()
775 ndev->irq = irq; in arc_emac_probe()
776 dev_info(dev, "IRQ is %d\n", ndev->irq); in arc_emac_probe()
779 err = devm_request_irq(dev, ndev->irq, arc_emac_intr, 0, in arc_emac_probe()
780 ndev->name, ndev); in arc_emac_probe()
790 memcpy(ndev->dev_addr, mac_addr, ETH_ALEN); in arc_emac_probe()
792 eth_hw_addr_random(ndev); in arc_emac_probe()
794 arc_emac_set_address_internal(ndev); in arc_emac_probe()
795 dev_info(dev, "MAC address is now %pM\n", ndev->dev_addr); in arc_emac_probe()
819 priv->phy_dev = of_phy_connect(ndev, phy_node, arc_emac_adjust_link, 0, in arc_emac_probe()
830 netif_napi_add(ndev, &priv->napi, arc_emac_poll, ARC_EMAC_NAPI_WEIGHT); in arc_emac_probe()
832 err = register_netdev(ndev); in arc_emac_probe()
853 int arc_emac_remove(struct net_device *ndev) in arc_emac_remove() argument
855 struct arc_emac_priv *priv = netdev_priv(ndev); in arc_emac_remove()
860 unregister_netdev(ndev); in arc_emac_remove()