Lines Matching refs:ndev
66 static void set_multicast_list(struct net_device *ndev);
67 static void fec_enet_itr_coal_init(struct net_device *ndev);
316 static void fec_dump(struct net_device *ndev) in fec_dump() argument
318 struct fec_enet_private *fep = netdev_priv(ndev); in fec_dump()
323 netdev_info(ndev, "TX ring dump\n"); in fec_dump()
347 fec_enet_clear_csum(struct sk_buff *skb, struct net_device *ndev) in fec_enet_clear_csum() argument
366 struct net_device *ndev) in fec_enet_txq_submit_frag_skb() argument
368 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_txq_submit_frag_skb()
429 netdev_err(ndev, "Tx DMA memory map failed\n"); in fec_enet_txq_submit_frag_skb()
453 struct sk_buff *skb, struct net_device *ndev) in fec_enet_txq_submit_skb() argument
455 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_txq_submit_skb()
472 netdev_err(ndev, "NOT enough BD for SG!\n"); in fec_enet_txq_submit_skb()
477 if (fec_enet_clear_csum(skb, ndev)) { in fec_enet_txq_submit_skb()
507 netdev_err(ndev, "Tx DMA memory map failed\n"); in fec_enet_txq_submit_skb()
512 ret = fec_enet_txq_submit_frag_skb(txq, skb, ndev); in fec_enet_txq_submit_skb()
572 struct net_device *ndev, in fec_enet_txq_put_data_tso() argument
576 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_txq_put_data_tso()
601 netdev_err(ndev, "Tx DMA memory map failed\n"); in fec_enet_txq_put_data_tso()
633 struct sk_buff *skb, struct net_device *ndev, in fec_enet_txq_put_hdr_tso() argument
636 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_txq_put_hdr_tso()
664 netdev_err(ndev, "Tx DMA memory map failed\n"); in fec_enet_txq_put_hdr_tso()
688 struct net_device *ndev) in fec_enet_txq_submit_tso() argument
690 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_txq_submit_tso()
702 netdev_err(ndev, "NOT enough BD for TSO!\n"); in fec_enet_txq_submit_tso()
707 if (fec_enet_clear_csum(skb, ndev)) { in fec_enet_txq_submit_tso()
726 ret = fec_enet_txq_put_hdr_tso(txq, skb, ndev, bdp, index); in fec_enet_txq_submit_tso()
737 ret = fec_enet_txq_put_data_tso(txq, skb, ndev, in fec_enet_txq_submit_tso()
774 fec_enet_start_xmit(struct sk_buff *skb, struct net_device *ndev) in fec_enet_start_xmit() argument
776 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_start_xmit()
785 nq = netdev_get_tx_queue(ndev, queue); in fec_enet_start_xmit()
788 ret = fec_enet_txq_submit_tso(txq, skb, ndev); in fec_enet_start_xmit()
790 ret = fec_enet_txq_submit_skb(txq, skb, ndev); in fec_enet_start_xmit()
858 static void fec_enet_active_rxring(struct net_device *ndev) in fec_enet_active_rxring() argument
860 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_active_rxring()
867 static void fec_enet_enable_ring(struct net_device *ndev) in fec_enet_enable_ring() argument
869 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_enable_ring()
896 static void fec_enet_reset_skb(struct net_device *ndev) in fec_enet_reset_skb() argument
898 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_reset_skb()
920 fec_restart(struct net_device *ndev) in fec_restart() argument
922 struct fec_enet_private *fep = netdev_priv(ndev); in fec_restart()
944 memcpy(&temp_mac, ndev->dev_addr, ETH_ALEN); in fec_restart()
952 fec_enet_bd_init(ndev); in fec_restart()
954 fec_enet_enable_ring(ndev); in fec_restart()
957 fec_enet_reset_skb(ndev); in fec_restart()
1059 set_multicast_list(ndev); in fec_restart()
1082 fec_enet_active_rxring(ndev); in fec_restart()
1085 fec_ptp_start_cyclecounter(ndev); in fec_restart()
1094 fec_enet_itr_coal_init(ndev); in fec_restart()
1099 fec_stop(struct net_device *ndev) in fec_stop() argument
1101 struct fec_enet_private *fep = netdev_priv(ndev); in fec_stop()
1111 netdev_err(ndev, "Graceful transmit stop did not complete!\n"); in fec_stop()
1147 fec_timeout(struct net_device *ndev) in fec_timeout() argument
1149 struct fec_enet_private *fep = netdev_priv(ndev); in fec_timeout()
1151 fec_dump(ndev); in fec_timeout()
1153 ndev->stats.tx_errors++; in fec_timeout()
1162 struct net_device *ndev = fep->netdev; in fec_enet_timeout_work() local
1165 if (netif_device_present(ndev) || netif_running(ndev)) { in fec_enet_timeout_work()
1167 netif_tx_lock_bh(ndev); in fec_enet_timeout_work()
1168 fec_restart(ndev); in fec_enet_timeout_work()
1169 netif_wake_queue(ndev); in fec_enet_timeout_work()
1170 netif_tx_unlock_bh(ndev); in fec_enet_timeout_work()
1192 fec_enet_tx_queue(struct net_device *ndev, u16 queue_id) in fec_enet_tx_queue() argument
1203 fep = netdev_priv(ndev); in fec_enet_tx_queue()
1209 nq = netdev_get_tx_queue(ndev, queue_id); in fec_enet_tx_queue()
1238 ndev->stats.tx_errors++; in fec_enet_tx_queue()
1240 ndev->stats.tx_heartbeat_errors++; in fec_enet_tx_queue()
1242 ndev->stats.tx_window_errors++; in fec_enet_tx_queue()
1244 ndev->stats.tx_aborted_errors++; in fec_enet_tx_queue()
1246 ndev->stats.tx_fifo_errors++; in fec_enet_tx_queue()
1248 ndev->stats.tx_carrier_errors++; in fec_enet_tx_queue()
1250 ndev->stats.tx_packets++; in fec_enet_tx_queue()
1251 ndev->stats.tx_bytes += skb->len; in fec_enet_tx_queue()
1267 ndev->stats.collisions++; in fec_enet_tx_queue()
1279 if (netif_queue_stopped(ndev)) { in fec_enet_tx_queue()
1293 fec_enet_tx(struct net_device *ndev) in fec_enet_tx() argument
1295 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_tx()
1300 fec_enet_tx_queue(ndev, queue_id); in fec_enet_tx()
1306 fec_enet_new_rxbdp(struct net_device *ndev, struct bufdesc *bdp, struct sk_buff *skb) in fec_enet_new_rxbdp() argument
1308 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_new_rxbdp()
1320 netdev_err(ndev, "Rx DMA memory map failed\n"); in fec_enet_new_rxbdp()
1327 static bool fec_enet_copybreak(struct net_device *ndev, struct sk_buff **skb, in fec_enet_copybreak() argument
1330 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_copybreak()
1336 new_skb = netdev_alloc_skb(ndev, length); in fec_enet_copybreak()
1358 fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id) in fec_enet_rx_queue() argument
1360 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_rx_queue()
1397 netdev_err(ndev, "rcv is not +last\n"); in fec_enet_rx_queue()
1404 ndev->stats.rx_errors++; in fec_enet_rx_queue()
1407 ndev->stats.rx_length_errors++; in fec_enet_rx_queue()
1410 ndev->stats.rx_frame_errors++; in fec_enet_rx_queue()
1412 ndev->stats.rx_crc_errors++; in fec_enet_rx_queue()
1414 ndev->stats.rx_fifo_errors++; in fec_enet_rx_queue()
1422 ndev->stats.rx_errors++; in fec_enet_rx_queue()
1423 ndev->stats.rx_frame_errors++; in fec_enet_rx_queue()
1428 ndev->stats.rx_packets++; in fec_enet_rx_queue()
1430 ndev->stats.rx_bytes += pkt_len; in fec_enet_rx_queue()
1439 is_copybreak = fec_enet_copybreak(ndev, &skb, bdp, pkt_len - 4, in fec_enet_rx_queue()
1442 skb_new = netdev_alloc_skb(ndev, FEC_ENET_RX_FRSIZE); in fec_enet_rx_queue()
1444 ndev->stats.rx_dropped++; in fec_enet_rx_queue()
1465 if ((ndev->features & NETIF_F_HW_VLAN_CTAG_RX) && in fec_enet_rx_queue()
1478 skb->protocol = eth_type_trans(skb, ndev); in fec_enet_rx_queue()
1509 fec_enet_new_rxbdp(ndev, bdp, skb_new); in fec_enet_rx_queue()
1542 fec_enet_rx(struct net_device *ndev, int budget) in fec_enet_rx() argument
1546 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_rx()
1550 pkt_received += fec_enet_rx_queue(ndev, in fec_enet_rx()
1582 struct net_device *ndev = dev_id; in fec_enet_interrupt() local
1583 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_interrupt()
1614 struct net_device *ndev = napi->dev; in fec_enet_rx_napi() local
1615 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_rx_napi()
1618 pkts = fec_enet_rx(ndev, budget); in fec_enet_rx_napi()
1620 fec_enet_tx(ndev); in fec_enet_rx_napi()
1630 static void fec_get_mac(struct net_device *ndev) in fec_get_mac() argument
1632 struct fec_enet_private *fep = netdev_priv(ndev); in fec_get_mac()
1685 netdev_err(ndev, "Invalid MAC address: %pM\n", iap); in fec_get_mac()
1686 eth_hw_addr_random(ndev); in fec_get_mac()
1687 netdev_info(ndev, "Using random MAC address: %pM\n", in fec_get_mac()
1688 ndev->dev_addr); in fec_get_mac()
1692 memcpy(ndev->dev_addr, iap, ETH_ALEN); in fec_get_mac()
1696 ndev->dev_addr[ETH_ALEN-1] = macaddr[ETH_ALEN-1] + fep->dev_id; in fec_get_mac()
1704 static void fec_enet_adjust_link(struct net_device *ndev) in fec_enet_adjust_link() argument
1706 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_adjust_link()
1721 if (!netif_running(ndev) || !netif_device_present(ndev)) { in fec_enet_adjust_link()
1742 netif_tx_lock_bh(ndev); in fec_enet_adjust_link()
1743 fec_restart(ndev); in fec_enet_adjust_link()
1744 netif_wake_queue(ndev); in fec_enet_adjust_link()
1745 netif_tx_unlock_bh(ndev); in fec_enet_adjust_link()
1751 netif_tx_lock_bh(ndev); in fec_enet_adjust_link()
1752 fec_stop(ndev); in fec_enet_adjust_link()
1753 netif_tx_unlock_bh(ndev); in fec_enet_adjust_link()
1817 static int fec_enet_clk_enable(struct net_device *ndev, bool enable) in fec_enet_clk_enable() argument
1819 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_clk_enable()
1881 static int fec_enet_mii_probe(struct net_device *ndev) in fec_enet_mii_probe() argument
1883 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_mii_probe()
1893 phy_dev = of_phy_connect(ndev, fep->phy_node, in fec_enet_mii_probe()
1914 netdev_info(ndev, "no PHY, assuming direct connection to switch\n"); in fec_enet_mii_probe()
1921 phy_dev = phy_connect(ndev, phy_name, &fec_enet_adjust_link, in fec_enet_mii_probe()
1926 netdev_err(ndev, "could not attach to PHY\n"); in fec_enet_mii_probe()
1947 netdev_info(ndev, "Freescale FEC PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)\n", in fec_enet_mii_probe()
1957 struct net_device *ndev = platform_get_drvdata(pdev); in fec_enet_mii_init() local
1958 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_mii_init()
2087 static int fec_enet_get_settings(struct net_device *ndev, in fec_enet_get_settings() argument
2090 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_get_settings()
2099 static int fec_enet_set_settings(struct net_device *ndev, in fec_enet_set_settings() argument
2102 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_set_settings()
2111 static void fec_enet_get_drvinfo(struct net_device *ndev, in fec_enet_get_drvinfo() argument
2114 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_get_drvinfo()
2119 strlcpy(info->bus_info, dev_name(&ndev->dev), sizeof(info->bus_info)); in fec_enet_get_drvinfo()
2122 static int fec_enet_get_ts_info(struct net_device *ndev, in fec_enet_get_ts_info() argument
2125 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_get_ts_info()
2147 return ethtool_op_get_ts_info(ndev, info); in fec_enet_get_ts_info()
2153 static void fec_enet_get_pauseparam(struct net_device *ndev, in fec_enet_get_pauseparam() argument
2156 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_get_pauseparam()
2163 static int fec_enet_set_pauseparam(struct net_device *ndev, in fec_enet_set_pauseparam() argument
2166 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_set_pauseparam()
2172 netdev_info(ndev, in fec_enet_set_pauseparam()
2192 if (netif_running(ndev)) in fec_enet_set_pauseparam()
2193 fec_stop(ndev); in fec_enet_set_pauseparam()
2196 if (netif_running(ndev)) { in fec_enet_set_pauseparam()
2198 netif_tx_lock_bh(ndev); in fec_enet_set_pauseparam()
2199 fec_restart(ndev); in fec_enet_set_pauseparam()
2200 netif_wake_queue(ndev); in fec_enet_set_pauseparam()
2201 netif_tx_unlock_bh(ndev); in fec_enet_set_pauseparam()
2323 static int fec_enet_us_to_itr_clock(struct net_device *ndev, int us) in fec_enet_us_to_itr_clock() argument
2325 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_us_to_itr_clock()
2331 static void fec_enet_itr_coal_set(struct net_device *ndev) in fec_enet_itr_coal_set() argument
2333 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_itr_coal_set()
2352 rx_itr |= FEC_ITR_ICTT(fec_enet_us_to_itr_clock(ndev, fep->rx_time_itr)); in fec_enet_itr_coal_set()
2354 tx_itr |= FEC_ITR_ICTT(fec_enet_us_to_itr_clock(ndev, fep->tx_time_itr)); in fec_enet_itr_coal_set()
2368 fec_enet_get_coalesce(struct net_device *ndev, struct ethtool_coalesce *ec) in fec_enet_get_coalesce() argument
2370 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_get_coalesce()
2385 fec_enet_set_coalesce(struct net_device *ndev, struct ethtool_coalesce *ec) in fec_enet_set_coalesce() argument
2387 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_set_coalesce()
2403 cycle = fec_enet_us_to_itr_clock(ndev, fep->rx_time_itr); in fec_enet_set_coalesce()
2409 cycle = fec_enet_us_to_itr_clock(ndev, fep->tx_time_itr); in fec_enet_set_coalesce()
2421 fec_enet_itr_coal_set(ndev); in fec_enet_set_coalesce()
2426 static void fec_enet_itr_coal_init(struct net_device *ndev) in fec_enet_itr_coal_init() argument
2436 fec_enet_set_coalesce(ndev, &ec); in fec_enet_itr_coal_init()
2478 fec_enet_get_wol(struct net_device *ndev, struct ethtool_wolinfo *wol) in fec_enet_get_wol() argument
2480 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_get_wol()
2491 fec_enet_set_wol(struct net_device *ndev, struct ethtool_wolinfo *wol) in fec_enet_set_wol() argument
2493 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_set_wol()
2501 device_set_wakeup_enable(&ndev->dev, wol->wolopts & WAKE_MAGIC); in fec_enet_set_wol()
2502 if (device_may_wakeup(&ndev->dev)) { in fec_enet_set_wol()
2537 static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd) in fec_enet_ioctl() argument
2539 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_ioctl()
2542 if (!netif_running(ndev)) in fec_enet_ioctl()
2550 return fec_ptp_set(ndev, rq); in fec_enet_ioctl()
2552 return fec_ptp_get(ndev, rq); in fec_enet_ioctl()
2558 static void fec_enet_free_buffers(struct net_device *ndev) in fec_enet_free_buffers() argument
2560 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_free_buffers()
2598 static void fec_enet_free_queue(struct net_device *ndev) in fec_enet_free_queue() argument
2600 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_free_queue()
2619 static int fec_enet_alloc_queue(struct net_device *ndev) in fec_enet_alloc_queue() argument
2621 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_alloc_queue()
2665 fec_enet_free_queue(ndev); in fec_enet_alloc_queue()
2670 fec_enet_alloc_rxq_buffers(struct net_device *ndev, unsigned int queue) in fec_enet_alloc_rxq_buffers() argument
2672 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_alloc_rxq_buffers()
2681 skb = netdev_alloc_skb(ndev, FEC_ENET_RX_FRSIZE); in fec_enet_alloc_rxq_buffers()
2685 if (fec_enet_new_rxbdp(ndev, bdp, skb)) { in fec_enet_alloc_rxq_buffers()
2707 fec_enet_free_buffers(ndev); in fec_enet_alloc_rxq_buffers()
2712 fec_enet_alloc_txq_buffers(struct net_device *ndev, unsigned int queue) in fec_enet_alloc_txq_buffers() argument
2714 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_alloc_txq_buffers()
2744 fec_enet_free_buffers(ndev); in fec_enet_alloc_txq_buffers()
2748 static int fec_enet_alloc_buffers(struct net_device *ndev) in fec_enet_alloc_buffers() argument
2750 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_alloc_buffers()
2754 if (fec_enet_alloc_rxq_buffers(ndev, i)) in fec_enet_alloc_buffers()
2758 if (fec_enet_alloc_txq_buffers(ndev, i)) in fec_enet_alloc_buffers()
2764 fec_enet_open(struct net_device *ndev) in fec_enet_open() argument
2766 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_open()
2770 ret = fec_enet_clk_enable(ndev, true); in fec_enet_open()
2778 ret = fec_enet_alloc_buffers(ndev); in fec_enet_open()
2783 ret = fec_enet_mii_probe(ndev); in fec_enet_open()
2787 fec_restart(ndev); in fec_enet_open()
2790 netif_tx_start_all_queues(ndev); in fec_enet_open()
2792 device_set_wakeup_enable(&ndev->dev, fep->wol_flag & in fec_enet_open()
2798 fec_enet_free_buffers(ndev); in fec_enet_open()
2800 fec_enet_clk_enable(ndev, false); in fec_enet_open()
2806 fec_enet_close(struct net_device *ndev) in fec_enet_close() argument
2808 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_close()
2812 if (netif_device_present(ndev)) { in fec_enet_close()
2814 netif_tx_disable(ndev); in fec_enet_close()
2815 fec_stop(ndev); in fec_enet_close()
2821 fec_enet_clk_enable(ndev, false); in fec_enet_close()
2823 fec_enet_free_buffers(ndev); in fec_enet_close()
2841 static void set_multicast_list(struct net_device *ndev) in set_multicast_list() argument
2843 struct fec_enet_private *fep = netdev_priv(ndev); in set_multicast_list()
2848 if (ndev->flags & IFF_PROMISC) { in set_multicast_list()
2859 if (ndev->flags & IFF_ALLMULTI) { in set_multicast_list()
2874 netdev_for_each_mc_addr(ha, ndev) { in set_multicast_list()
2878 for (i = 0; i < ndev->addr_len; i++) { in set_multicast_list()
2905 fec_set_mac_address(struct net_device *ndev, void *p) in fec_set_mac_address() argument
2907 struct fec_enet_private *fep = netdev_priv(ndev); in fec_set_mac_address()
2913 memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len); in fec_set_mac_address()
2916 writel(ndev->dev_addr[3] | (ndev->dev_addr[2] << 8) | in fec_set_mac_address()
2917 (ndev->dev_addr[1] << 16) | (ndev->dev_addr[0] << 24), in fec_set_mac_address()
2919 writel((ndev->dev_addr[5] << 16) | (ndev->dev_addr[4] << 24), in fec_set_mac_address()
3007 static int fec_enet_init(struct net_device *ndev) in fec_enet_init() argument
3009 struct fec_enet_private *fep = netdev_priv(ndev); in fec_enet_init()
3025 fec_enet_alloc_queue(ndev); in fec_enet_init()
3044 fec_get_mac(ndev); in fec_enet_init()
3046 fec_set_mac_address(ndev, NULL); in fec_enet_init()
3081 ndev->watchdog_timeo = TX_TIMEOUT; in fec_enet_init()
3082 ndev->netdev_ops = &fec_netdev_ops; in fec_enet_init()
3083 ndev->ethtool_ops = &fec_enet_ethtool_ops; in fec_enet_init()
3086 netif_napi_add(ndev, &fep->napi, fec_enet_rx_napi, NAPI_POLL_WEIGHT); in fec_enet_init()
3090 ndev->features |= NETIF_F_HW_VLAN_CTAG_RX; in fec_enet_init()
3093 ndev->gso_max_segs = FEC_MAX_TSO_SEGS; in fec_enet_init()
3096 ndev->features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM in fec_enet_init()
3106 ndev->hw_features = ndev->features; in fec_enet_init()
3108 fec_restart(ndev); in fec_enet_init()
3192 struct net_device *ndev; in fec_probe() local
3204 ndev = alloc_etherdev_mqs(sizeof(struct fec_enet_private), in fec_probe()
3206 if (!ndev) in fec_probe()
3209 SET_NETDEV_DEV(ndev, &pdev->dev); in fec_probe()
3212 fep = netdev_priv(ndev); in fec_probe()
3219 fep->netdev = ndev; in fec_probe()
3242 platform_set_drvdata(pdev, ndev); in fec_probe()
3304 ret = fec_enet_clk_enable(ndev, true); in fec_probe()
3325 ret = fec_enet_init(ndev); in fec_probe()
3338 0, pdev->name, ndev); in fec_probe()
3351 netif_carrier_off(ndev); in fec_probe()
3352 fec_enet_clk_enable(ndev, false); in fec_probe()
3355 ret = register_netdev(ndev); in fec_probe()
3359 device_init_wakeup(&ndev->dev, fep->wol_flag & in fec_probe()
3363 netdev_info(ndev, "registered PHC device %d\n", fep->dev_id); in fec_probe()
3377 fec_enet_clk_enable(ndev, false); in fec_probe()
3382 free_netdev(ndev); in fec_probe()
3390 struct net_device *ndev = platform_get_drvdata(pdev); in fec_drv_remove() local
3391 struct fec_enet_private *fep = netdev_priv(ndev); in fec_drv_remove()
3395 unregister_netdev(ndev); in fec_drv_remove()
3402 free_netdev(ndev); in fec_drv_remove()
3409 struct net_device *ndev = dev_get_drvdata(dev); in fec_suspend() local
3410 struct fec_enet_private *fep = netdev_priv(ndev); in fec_suspend()
3413 if (netif_running(ndev)) { in fec_suspend()
3418 netif_tx_lock_bh(ndev); in fec_suspend()
3419 netif_device_detach(ndev); in fec_suspend()
3420 netif_tx_unlock_bh(ndev); in fec_suspend()
3421 fec_stop(ndev); in fec_suspend()
3422 fec_enet_clk_enable(ndev, false); in fec_suspend()
3442 struct net_device *ndev = dev_get_drvdata(dev); in fec_resume() local
3443 struct fec_enet_private *fep = netdev_priv(ndev); in fec_resume()
3455 if (netif_running(ndev)) { in fec_resume()
3456 ret = fec_enet_clk_enable(ndev, true); in fec_resume()
3471 fec_restart(ndev); in fec_resume()
3472 netif_tx_lock_bh(ndev); in fec_resume()
3473 netif_device_attach(ndev); in fec_resume()
3474 netif_tx_unlock_bh(ndev); in fec_resume()