Lines Matching refs:netdev
97 struct net_device *netdev; member
126 struct net_device *netdev = priv->netdev; in ftgmac100_reset_mac() local
143 netdev_err(netdev, "Hardware reset failed\n"); in ftgmac100_reset_mac()
164 netdev_err(priv->netdev, "Unknown speed %d !\n", in ftgmac100_reset_and_config_mac()
199 ether_addr_copy(priv->netdev->dev_addr, mac); in ftgmac100_initial_mac()
216 ether_addr_copy(priv->netdev->dev_addr, mac); in ftgmac100_initial_mac()
219 eth_hw_addr_random(priv->netdev); in ftgmac100_initial_mac()
221 priv->netdev->dev_addr); in ftgmac100_initial_mac()
279 ftgmac100_write_mac_addr(priv, priv->netdev->dev_addr); in ftgmac100_init_hw()
338 if (priv->netdev->flags & IFF_PROMISC) in ftgmac100_start_hw()
340 if (priv->netdev->flags & IFF_ALLMULTI) in ftgmac100_start_hw()
342 else if (netdev_mc_count(priv->netdev)) in ftgmac100_start_hw()
346 if (priv->netdev->features & NETIF_F_HW_VLAN_CTAG_RX) in ftgmac100_start_hw()
364 netdev_for_each_mc_addr(ha, priv->netdev) { in ftgmac100_calc_mc_hash()
375 static void ftgmac100_set_rx_mode(struct net_device *netdev) in ftgmac100_set_rx_mode() argument
377 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_set_rx_mode()
383 if (!netif_running(netdev)) in ftgmac100_set_rx_mode()
397 struct net_device *netdev = priv->netdev; in ftgmac100_alloc_rx_buf() local
402 skb = netdev_alloc_skb_ip_align(netdev, RX_BUF_SIZE); in ftgmac100_alloc_rx_buf()
405 netdev_warn(netdev, "failed to allocate rx skb\n"); in ftgmac100_alloc_rx_buf()
413 netdev_err(netdev, "failed to map rx page\n"); in ftgmac100_alloc_rx_buf()
447 struct net_device *netdev = priv->netdev; in ftgmac100_rx_packet_error() local
450 netdev->stats.rx_errors++; in ftgmac100_rx_packet_error()
453 netdev->stats.rx_crc_errors++; in ftgmac100_rx_packet_error()
458 netdev->stats.rx_length_errors++; in ftgmac100_rx_packet_error()
463 struct net_device *netdev = priv->netdev; in ftgmac100_rx_packet() local
522 netdev->stats.multicast++; in ftgmac100_rx_packet()
530 if (netdev->features & NETIF_F_RXCSUM) { in ftgmac100_rx_packet()
545 if ((netdev->features & NETIF_F_HW_VLAN_CTAG_RX) && in ftgmac100_rx_packet()
568 skb->protocol = eth_type_trans(skb, netdev); in ftgmac100_rx_packet()
570 netdev->stats.rx_packets++; in ftgmac100_rx_packet()
571 netdev->stats.rx_bytes += size; in ftgmac100_rx_packet()
586 netdev->stats.rx_dropped++; in ftgmac100_rx_packet()
647 struct net_device *netdev = priv->netdev; in ftgmac100_tx_complete_packet() local
661 netdev->stats.tx_packets++; in ftgmac100_tx_complete_packet()
662 netdev->stats.tx_bytes += skb->len; in ftgmac100_tx_complete_packet()
673 struct net_device *netdev = priv->netdev; in ftgmac100_tx_complete() local
682 if (unlikely(netif_queue_stopped(netdev) && in ftgmac100_tx_complete()
686 txq = netdev_get_tx_queue(netdev, 0); in ftgmac100_tx_complete()
688 if (netif_queue_stopped(netdev) && in ftgmac100_tx_complete()
690 netif_wake_queue(netdev); in ftgmac100_tx_complete()
716 struct net_device *netdev) in ftgmac100_hard_start_xmit() argument
718 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_hard_start_xmit()
726 netdev->stats.tx_dropped++; in ftgmac100_hard_start_xmit()
733 netdev_dbg(netdev, "tx packet too big\n"); in ftgmac100_hard_start_xmit()
749 netdev_err(netdev, "map tx packet head failed\n"); in ftgmac100_hard_start_xmit()
828 netif_stop_queue(netdev); in ftgmac100_hard_start_xmit()
832 netif_wake_queue(netdev); in ftgmac100_hard_start_xmit()
842 netdev_err(netdev, "map tx fragment failed\n"); in ftgmac100_hard_start_xmit()
865 netdev->stats.tx_dropped++; in ftgmac100_hard_start_xmit()
1008 static void ftgmac100_adjust_link(struct net_device *netdev) in ftgmac100_adjust_link() argument
1010 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_adjust_link()
1011 struct phy_device *phydev = netdev->phydev; in ftgmac100_adjust_link()
1062 struct net_device *netdev = priv->netdev; in ftgmac100_mii_probe() local
1067 netdev_info(netdev, "%s: no PHY found\n", netdev->name); in ftgmac100_mii_probe()
1071 phydev = phy_connect(netdev, phydev_name(phydev), in ftgmac100_mii_probe()
1075 netdev_err(netdev, "%s: Could not attach to PHY\n", netdev->name); in ftgmac100_mii_probe()
1093 struct net_device *netdev = bus->priv; in ftgmac100_mdiobus_read() local
1094 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_mdiobus_read()
1122 netdev_err(netdev, "mdio read timed out\n"); in ftgmac100_mdiobus_read()
1129 struct net_device *netdev = bus->priv; in ftgmac100_mdiobus_write() local
1130 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_mdiobus_write()
1158 netdev_err(netdev, "mdio write timed out\n"); in ftgmac100_mdiobus_write()
1162 static void ftgmac100_get_drvinfo(struct net_device *netdev, in ftgmac100_get_drvinfo() argument
1167 strlcpy(info->bus_info, dev_name(&netdev->dev), sizeof(info->bus_info)); in ftgmac100_get_drvinfo()
1170 static void ftgmac100_get_ringparam(struct net_device *netdev, in ftgmac100_get_ringparam() argument
1173 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_get_ringparam()
1182 static int ftgmac100_set_ringparam(struct net_device *netdev, in ftgmac100_set_ringparam() argument
1185 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_set_ringparam()
1197 if (netif_running(netdev)) in ftgmac100_set_ringparam()
1203 static void ftgmac100_get_pauseparam(struct net_device *netdev, in ftgmac100_get_pauseparam() argument
1206 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_get_pauseparam()
1213 static int ftgmac100_set_pauseparam(struct net_device *netdev, in ftgmac100_set_pauseparam() argument
1216 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_set_pauseparam()
1217 struct phy_device *phydev = netdev->phydev; in ftgmac100_set_pauseparam()
1235 if (netif_running(netdev)) { in ftgmac100_set_pauseparam()
1259 struct net_device *netdev = dev_id; in ftgmac100_interrupt() local
1260 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_interrupt()
1270 netdev->stats.rx_over_errors++; in ftgmac100_interrupt()
1274 netdev->stats.rx_fifo_errors++; in ftgmac100_interrupt()
1278 netdev->stats.tx_fifo_errors++; in ftgmac100_interrupt()
1283 netdev_warn(netdev, in ftgmac100_interrupt()
1398 netif_start_queue(priv->netdev); in ftgmac100_init_all()
1410 struct net_device *netdev = priv->netdev; in ftgmac100_reset_task() local
1413 netdev_dbg(netdev, "Resetting NIC...\n"); in ftgmac100_reset_task()
1417 if (netdev->phydev) in ftgmac100_reset_task()
1418 mutex_lock(&netdev->phydev->lock); in ftgmac100_reset_task()
1424 if (!netif_running(netdev)) in ftgmac100_reset_task()
1428 netif_trans_update(netdev); in ftgmac100_reset_task()
1430 netif_tx_disable(netdev); in ftgmac100_reset_task()
1437 netdev_err(netdev, "attempting to continue...\n"); in ftgmac100_reset_task()
1446 netdev_dbg(netdev, "Reset done !\n"); in ftgmac100_reset_task()
1450 if (netdev->phydev) in ftgmac100_reset_task()
1451 mutex_unlock(&netdev->phydev->lock); in ftgmac100_reset_task()
1455 static int ftgmac100_open(struct net_device *netdev) in ftgmac100_open() argument
1457 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_open()
1463 netdev_err(netdev, "Failed to allocate descriptors\n"); in ftgmac100_open()
1487 netif_napi_add(netdev, &priv->napi, ftgmac100_poll, 64); in ftgmac100_open()
1490 err = request_irq(netdev->irq, ftgmac100_interrupt, 0, netdev->name, netdev); in ftgmac100_open()
1492 netdev_err(netdev, "failed to request irq %d\n", netdev->irq); in ftgmac100_open()
1499 netdev_err(netdev, "Failed to allocate packet buffers\n"); in ftgmac100_open()
1503 if (netdev->phydev) { in ftgmac100_open()
1505 phy_start(netdev->phydev); in ftgmac100_open()
1508 netif_carrier_on(netdev); in ftgmac100_open()
1520 netif_stop_queue(netdev); in ftgmac100_open()
1523 free_irq(netdev->irq, netdev); in ftgmac100_open()
1532 static int ftgmac100_stop(struct net_device *netdev) in ftgmac100_stop() argument
1534 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_stop()
1547 netif_stop_queue(netdev); in ftgmac100_stop()
1550 if (netdev->phydev) in ftgmac100_stop()
1551 phy_stop(netdev->phydev); in ftgmac100_stop()
1556 free_irq(netdev->irq, netdev); in ftgmac100_stop()
1564 static int ftgmac100_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) in ftgmac100_do_ioctl() argument
1566 if (!netdev->phydev) in ftgmac100_do_ioctl()
1569 return phy_mii_ioctl(netdev->phydev, ifr, cmd); in ftgmac100_do_ioctl()
1572 static void ftgmac100_tx_timeout(struct net_device *netdev) in ftgmac100_tx_timeout() argument
1574 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_tx_timeout()
1583 static int ftgmac100_set_features(struct net_device *netdev, in ftgmac100_set_features() argument
1586 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_set_features()
1587 netdev_features_t changed = netdev->features ^ features; in ftgmac100_set_features()
1589 if (!netif_running(netdev)) in ftgmac100_set_features()
1597 if (priv->netdev->features & NETIF_F_HW_VLAN_CTAG_RX) in ftgmac100_set_features()
1608 static void ftgmac100_poll_controller(struct net_device *netdev) in ftgmac100_poll_controller() argument
1613 ftgmac100_interrupt(netdev->irq, netdev); in ftgmac100_poll_controller()
1635 static int ftgmac100_setup_mdio(struct net_device *netdev) in ftgmac100_setup_mdio() argument
1637 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_setup_mdio()
1683 netdev_warn(netdev, in ftgmac100_setup_mdio()
1693 priv->mii_bus->priv = priv->netdev; in ftgmac100_setup_mdio()
1721 static void ftgmac100_destroy_mdio(struct net_device *netdev) in ftgmac100_destroy_mdio() argument
1723 struct ftgmac100 *priv = netdev_priv(netdev); in ftgmac100_destroy_mdio()
1725 if (!netdev->phydev) in ftgmac100_destroy_mdio()
1728 phy_disconnect(netdev->phydev); in ftgmac100_destroy_mdio()
1762 struct net_device *netdev; in ftgmac100_probe() local
1779 netdev = alloc_etherdev(sizeof(*priv)); in ftgmac100_probe()
1780 if (!netdev) { in ftgmac100_probe()
1785 SET_NETDEV_DEV(netdev, &pdev->dev); in ftgmac100_probe()
1787 netdev->ethtool_ops = &ftgmac100_ethtool_ops; in ftgmac100_probe()
1788 netdev->netdev_ops = &ftgmac100_netdev_ops; in ftgmac100_probe()
1789 netdev->watchdog_timeo = 5 * HZ; in ftgmac100_probe()
1791 platform_set_drvdata(pdev, netdev); in ftgmac100_probe()
1794 priv = netdev_priv(netdev); in ftgmac100_probe()
1795 priv->netdev = netdev; in ftgmac100_probe()
1815 netdev->irq = irq; in ftgmac100_probe()
1844 priv->ndev = ncsi_register_dev(netdev, ftgmac100_ncsi_handler); in ftgmac100_probe()
1849 err = ftgmac100_setup_mdio(netdev); in ftgmac100_probe()
1862 netdev->hw_features = NETIF_F_RXCSUM | NETIF_F_HW_CSUM | in ftgmac100_probe()
1867 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER; in ftgmac100_probe()
1871 netdev->hw_features &= ~NETIF_F_HW_CSUM; in ftgmac100_probe()
1873 netdev->hw_features &= ~(NETIF_F_HW_CSUM | NETIF_F_RXCSUM); in ftgmac100_probe()
1874 netdev->features |= netdev->hw_features; in ftgmac100_probe()
1877 err = register_netdev(netdev); in ftgmac100_probe()
1883 netdev_info(netdev, "irq %d, mapped at %p\n", netdev->irq, priv->base); in ftgmac100_probe()
1889 ftgmac100_destroy_mdio(netdev); in ftgmac100_probe()
1895 free_netdev(netdev); in ftgmac100_probe()
1902 struct net_device *netdev; in ftgmac100_remove() local
1905 netdev = platform_get_drvdata(pdev); in ftgmac100_remove()
1906 priv = netdev_priv(netdev); in ftgmac100_remove()
1908 unregister_netdev(netdev); in ftgmac100_remove()
1917 ftgmac100_destroy_mdio(netdev); in ftgmac100_remove()
1923 free_netdev(netdev); in ftgmac100_remove()