• Home
  • Raw
  • Download

Lines Matching refs:ndev

36 static void nps_enet_clean_rx_fifo(struct net_device *ndev, u32 frame_len)  in nps_enet_clean_rx_fifo()  argument
38 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_clean_rx_fifo()
46 static void nps_enet_read_rx_fifo(struct net_device *ndev, in nps_enet_read_rx_fifo() argument
49 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_read_rx_fifo()
74 static u32 nps_enet_rx_handler(struct net_device *ndev) in nps_enet_rx_handler() argument
78 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_rx_handler()
96 ndev->stats.rx_errors++; in nps_enet_rx_handler()
102 ndev->stats.rx_crc_errors++; in nps_enet_rx_handler()
103 ndev->stats.rx_dropped++; in nps_enet_rx_handler()
109 ndev->stats.rx_length_errors++; in nps_enet_rx_handler()
110 ndev->stats.rx_dropped++; in nps_enet_rx_handler()
118 skb = netdev_alloc_skb_ip_align(ndev, frame_len); in nps_enet_rx_handler()
120 ndev->stats.rx_errors++; in nps_enet_rx_handler()
121 ndev->stats.rx_dropped++; in nps_enet_rx_handler()
126 nps_enet_read_rx_fifo(ndev, skb->data, frame_len); in nps_enet_rx_handler()
129 skb->protocol = eth_type_trans(skb, ndev); in nps_enet_rx_handler()
132 ndev->stats.rx_packets++; in nps_enet_rx_handler()
133 ndev->stats.rx_bytes += frame_len; in nps_enet_rx_handler()
140 nps_enet_clean_rx_fifo(ndev, frame_len); in nps_enet_rx_handler()
149 static void nps_enet_tx_handler(struct net_device *ndev) in nps_enet_tx_handler() argument
151 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_tx_handler()
165 ndev->stats.tx_errors++; in nps_enet_tx_handler()
167 ndev->stats.tx_packets++; in nps_enet_tx_handler()
168 ndev->stats.tx_bytes += tx_ctrl_nt; in nps_enet_tx_handler()
174 if (netif_queue_stopped(ndev)) in nps_enet_tx_handler()
175 netif_wake_queue(ndev); in nps_enet_tx_handler()
187 struct net_device *ndev = napi->dev; in nps_enet_poll() local
188 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_poll()
191 nps_enet_tx_handler(ndev); in nps_enet_poll()
192 work_done = nps_enet_rx_handler(ndev); in nps_enet_poll()
233 struct net_device *ndev = dev_instance; in nps_enet_irq_handler() local
234 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_irq_handler()
247 static void nps_enet_set_hw_mac_address(struct net_device *ndev) in nps_enet_set_hw_mac_address() argument
249 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_set_hw_mac_address()
254 ge_mac_cfg_1_value |= ndev->dev_addr[0] << CFG_1_OCTET_0_SHIFT; in nps_enet_set_hw_mac_address()
255 ge_mac_cfg_1_value |= ndev->dev_addr[1] << CFG_1_OCTET_1_SHIFT; in nps_enet_set_hw_mac_address()
256 ge_mac_cfg_1_value |= ndev->dev_addr[2] << CFG_1_OCTET_2_SHIFT; in nps_enet_set_hw_mac_address()
257 ge_mac_cfg_1_value |= ndev->dev_addr[3] << CFG_1_OCTET_3_SHIFT; in nps_enet_set_hw_mac_address()
259 | ndev->dev_addr[4] << CFG_2_OCTET_4_SHIFT; in nps_enet_set_hw_mac_address()
261 | ndev->dev_addr[5] << CFG_2_OCTET_5_SHIFT; in nps_enet_set_hw_mac_address()
280 static void nps_enet_hw_reset(struct net_device *ndev) in nps_enet_hw_reset() argument
282 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_hw_reset()
303 static void nps_enet_hw_enable_control(struct net_device *ndev) in nps_enet_hw_enable_control() argument
305 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_hw_enable_control()
327 max_frame_length = ETH_HLEN + ndev->mtu + ETH_FCS_LEN; in nps_enet_hw_enable_control()
341 nps_enet_set_hw_mac_address(ndev); in nps_enet_hw_enable_control()
377 static void nps_enet_hw_disable_control(struct net_device *ndev) in nps_enet_hw_disable_control() argument
379 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_hw_disable_control()
388 static void nps_enet_send_frame(struct net_device *ndev, in nps_enet_send_frame() argument
391 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_send_frame()
425 static s32 nps_enet_set_mac_address(struct net_device *ndev, void *p) in nps_enet_set_mac_address() argument
430 if (netif_running(ndev)) in nps_enet_set_mac_address()
433 res = eth_mac_addr(ndev, p); in nps_enet_set_mac_address()
435 ether_addr_copy(ndev->dev_addr, addr->sa_data); in nps_enet_set_mac_address()
436 nps_enet_set_hw_mac_address(ndev); in nps_enet_set_mac_address()
448 static void nps_enet_set_rx_mode(struct net_device *ndev) in nps_enet_set_rx_mode() argument
450 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_set_rx_mode()
453 if (ndev->flags & IFF_PROMISC) { in nps_enet_set_rx_mode()
478 static s32 nps_enet_open(struct net_device *ndev) in nps_enet_open() argument
480 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_open()
496 nps_enet_hw_disable_control(ndev); in nps_enet_open()
500 0, "enet-rx-tx", ndev); in nps_enet_open()
507 nps_enet_hw_reset(ndev); in nps_enet_open()
508 nps_enet_hw_enable_control(ndev); in nps_enet_open()
510 netif_start_queue(ndev); in nps_enet_open()
521 static s32 nps_enet_stop(struct net_device *ndev) in nps_enet_stop() argument
523 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_stop()
526 netif_stop_queue(ndev); in nps_enet_stop()
527 nps_enet_hw_disable_control(ndev); in nps_enet_stop()
528 free_irq(priv->irq, ndev); in nps_enet_stop()
544 struct net_device *ndev) in nps_enet_start_xmit() argument
546 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_start_xmit()
549 netif_stop_queue(ndev); in nps_enet_start_xmit()
558 nps_enet_send_frame(ndev, skb); in nps_enet_start_xmit()
564 static void nps_enet_poll_controller(struct net_device *ndev) in nps_enet_poll_controller() argument
566 disable_irq(ndev->irq); in nps_enet_poll_controller()
567 nps_enet_irq_handler(ndev->irq, ndev); in nps_enet_poll_controller()
568 enable_irq(ndev->irq); in nps_enet_poll_controller()
586 struct net_device *ndev; in nps_enet_probe() local
595 ndev = alloc_etherdev(sizeof(struct nps_enet_priv)); in nps_enet_probe()
596 if (!ndev) in nps_enet_probe()
599 platform_set_drvdata(pdev, ndev); in nps_enet_probe()
600 SET_NETDEV_DEV(ndev, dev); in nps_enet_probe()
601 priv = netdev_priv(ndev); in nps_enet_probe()
604 ndev->netdev_ops = &nps_netdev_ops; in nps_enet_probe()
605 ndev->watchdog_timeo = (400 * HZ / 1000); in nps_enet_probe()
607 ndev->flags &= ~IFF_MULTICAST; in nps_enet_probe()
620 ether_addr_copy(ndev->dev_addr, mac_addr); in nps_enet_probe()
622 eth_hw_addr_random(ndev); in nps_enet_probe()
632 netif_napi_add(ndev, &priv->napi, nps_enet_poll, in nps_enet_probe()
636 err = register_netdev(ndev); in nps_enet_probe()
639 ndev->name, (s32)err); in nps_enet_probe()
650 free_netdev(ndev); in nps_enet_probe()
657 struct net_device *ndev = platform_get_drvdata(pdev); in nps_enet_remove() local
658 struct nps_enet_priv *priv = netdev_priv(ndev); in nps_enet_remove()
660 unregister_netdev(ndev); in nps_enet_remove()
661 free_netdev(ndev); in nps_enet_remove()