Lines Matching defs:ndev
25 static void nps_enet_clean_rx_fifo(struct net_device *ndev, u32 frame_len)
27 struct nps_enet_priv *priv = netdev_priv(ndev);
35 static void nps_enet_read_rx_fifo(struct net_device *ndev,
38 struct nps_enet_priv *priv = netdev_priv(ndev);
63 static u32 nps_enet_rx_handler(struct net_device *ndev)
67 struct nps_enet_priv *priv = netdev_priv(ndev);
85 ndev->stats.rx_errors++;
91 ndev->stats.rx_crc_errors++;
92 ndev->stats.rx_dropped++;
98 ndev->stats.rx_length_errors++;
99 ndev->stats.rx_dropped++;
107 skb = netdev_alloc_skb_ip_align(ndev, frame_len);
109 ndev->stats.rx_errors++;
110 ndev->stats.rx_dropped++;
115 nps_enet_read_rx_fifo(ndev, skb->data, frame_len);
118 skb->protocol = eth_type_trans(skb, ndev);
121 ndev->stats.rx_packets++;
122 ndev->stats.rx_bytes += frame_len;
129 nps_enet_clean_rx_fifo(ndev, frame_len);
138 static void nps_enet_tx_handler(struct net_device *ndev)
140 struct nps_enet_priv *priv = netdev_priv(ndev);
154 ndev->stats.tx_errors++;
156 ndev->stats.tx_packets++;
157 ndev->stats.tx_bytes += tx_ctrl_nt;
163 if (netif_queue_stopped(ndev))
164 netif_wake_queue(ndev);
176 struct net_device *ndev = napi->dev;
177 struct nps_enet_priv *priv = netdev_priv(ndev);
180 nps_enet_tx_handler(ndev);
181 work_done = nps_enet_rx_handler(ndev);
222 struct net_device *ndev = dev_instance;
223 struct nps_enet_priv *priv = netdev_priv(ndev);
236 static void nps_enet_set_hw_mac_address(struct net_device *ndev)
238 struct nps_enet_priv *priv = netdev_priv(ndev);
243 ge_mac_cfg_1_value |= ndev->dev_addr[0] << CFG_1_OCTET_0_SHIFT;
244 ge_mac_cfg_1_value |= ndev->dev_addr[1] << CFG_1_OCTET_1_SHIFT;
245 ge_mac_cfg_1_value |= ndev->dev_addr[2] << CFG_1_OCTET_2_SHIFT;
246 ge_mac_cfg_1_value |= ndev->dev_addr[3] << CFG_1_OCTET_3_SHIFT;
248 | ndev->dev_addr[4] << CFG_2_OCTET_4_SHIFT;
250 | ndev->dev_addr[5] << CFG_2_OCTET_5_SHIFT;
261 * @ndev: Pointer to the network device.
269 static void nps_enet_hw_reset(struct net_device *ndev)
271 struct nps_enet_priv *priv = netdev_priv(ndev);
292 static void nps_enet_hw_enable_control(struct net_device *ndev)
294 struct nps_enet_priv *priv = netdev_priv(ndev);
316 max_frame_length = ETH_HLEN + ndev->mtu + ETH_FCS_LEN;
330 nps_enet_set_hw_mac_address(ndev);
366 static void nps_enet_hw_disable_control(struct net_device *ndev)
368 struct nps_enet_priv *priv = netdev_priv(ndev);
377 static void nps_enet_send_frame(struct net_device *ndev,
380 struct nps_enet_priv *priv = netdev_priv(ndev);
405 * @ndev: Pointer to net_device structure.
414 static s32 nps_enet_set_mac_address(struct net_device *ndev, void *p)
419 if (netif_running(ndev))
422 res = eth_mac_addr(ndev, p);
424 ether_addr_copy(ndev->dev_addr, addr->sa_data);
425 nps_enet_set_hw_mac_address(ndev);
433 * @ndev: Pointer to the network device.
437 static void nps_enet_set_rx_mode(struct net_device *ndev)
439 struct nps_enet_priv *priv = netdev_priv(ndev);
442 if (ndev->flags & IFF_PROMISC) {
460 * @ndev: Pointer to the network device.
467 static s32 nps_enet_open(struct net_device *ndev)
469 struct nps_enet_priv *priv = netdev_priv(ndev);
485 nps_enet_hw_disable_control(ndev);
489 0, "enet-rx-tx", ndev);
496 nps_enet_hw_reset(ndev);
497 nps_enet_hw_enable_control(ndev);
499 netif_start_queue(ndev);
506 * @ndev: Pointer to the network device.
510 static s32 nps_enet_stop(struct net_device *ndev)
512 struct nps_enet_priv *priv = netdev_priv(ndev);
515 netif_stop_queue(ndev);
516 nps_enet_hw_disable_control(ndev);
517 free_irq(priv->irq, ndev);
525 * @ndev: Pointer to net_device structure.
533 struct net_device *ndev)
535 struct nps_enet_priv *priv = netdev_priv(ndev);
538 netif_stop_queue(ndev);
547 nps_enet_send_frame(ndev, skb);
553 static void nps_enet_poll_controller(struct net_device *ndev)
555 disable_irq(ndev->irq);
556 nps_enet_irq_handler(ndev->irq, ndev);
557 enable_irq(ndev->irq);
575 struct net_device *ndev;
583 ndev = alloc_etherdev(sizeof(struct nps_enet_priv));
584 if (!ndev)
587 platform_set_drvdata(pdev, ndev);
588 SET_NETDEV_DEV(ndev, dev);
589 priv = netdev_priv(ndev);
592 ndev->netdev_ops = &nps_netdev_ops;
593 ndev->watchdog_timeo = (400 * HZ / 1000);
595 ndev->flags &= ~IFF_MULTICAST;
607 ether_addr_copy(ndev->dev_addr, mac_addr);
609 eth_hw_addr_random(ndev);
619 netif_napi_add(ndev, &priv->napi, nps_enet_poll,
623 err = register_netdev(ndev);
625 dev_err(dev, "Failed to register ndev for %s, err = 0x%08x\n",
626 ndev->name, (s32)err);
637 free_netdev(ndev);
644 struct net_device *ndev = platform_get_drvdata(pdev);
645 struct nps_enet_priv *priv = netdev_priv(ndev);
647 unregister_netdev(ndev);
649 free_netdev(ndev);