Lines Matching refs:ndev
429 struct net_device *ndev; member
471 static inline void kick_rx(struct net_device *ndev) in kick_rx() argument
473 struct ns83820 *dev = PRIV(ndev); in kick_rx()
482 ndev->name); in kick_rx()
553 static inline int rx_refill(struct net_device *ndev, gfp_t gfp) in rx_refill() argument
555 struct ns83820 *dev = PRIV(ndev); in rx_refill()
562 dprintk("rx_refill(%p)\n", ndev); in rx_refill()
570 skb = __netdev_alloc_skb(ndev, REAL_RX_BUF_SIZE+16, gfp); in rx_refill()
591 static void rx_refill_atomic(struct net_device *ndev) in rx_refill_atomic() argument
593 rx_refill(ndev, GFP_ATOMIC); in rx_refill_atomic()
600 struct net_device *ndev = dev->ndev; in queue_refill() local
602 rx_refill(ndev, GFP_KERNEL); in queue_refill()
604 kick_rx(ndev); in queue_refill()
612 static void phy_intr(struct net_device *ndev) in phy_intr() argument
614 struct ns83820 *dev = PRIV(ndev); in phy_intr()
704 netif_start_queue(ndev); in phy_intr()
705 netif_wake_queue(ndev); in phy_intr()
707 ndev->name, in phy_intr()
712 netif_stop_queue(ndev); in phy_intr()
713 printk(KERN_INFO "%s: link now down.\n", ndev->name); in phy_intr()
719 static int ns83820_setup_rx(struct net_device *ndev) in ns83820_setup_rx() argument
721 struct ns83820 *dev = PRIV(ndev); in ns83820_setup_rx()
725 dprintk("ns83820_setup_rx(%p)\n", ndev); in ns83820_setup_rx()
738 ret = rx_refill(ndev, GFP_KERNEL); in ns83820_setup_rx()
751 phy_intr(ndev); in ns83820_setup_rx()
770 kick_rx(ndev); in ns83820_setup_rx()
809 static void ns83820_rx_kick(struct net_device *ndev) in ns83820_rx_kick() argument
811 struct ns83820 *dev = PRIV(ndev); in ns83820_rx_kick()
814 rx_refill_atomic(ndev); in ns83820_rx_kick()
815 kick_rx(ndev); in ns83820_rx_kick()
822 kick_rx(ndev); in ns83820_rx_kick()
824 printk(KERN_DEBUG "%s: BAD\n", ndev->name); in ns83820_rx_kick()
830 static void rx_irq(struct net_device *ndev) argument
832 struct ns83820 *dev = PRIV(ndev);
841 dprintk("rx_irq(%p)\n", ndev);
899 ndev->stats.multicast++;
900 ndev->stats.rx_packets++;
901 ndev->stats.rx_bytes += len;
907 skb->protocol = eth_type_trans(skb, ndev);
919 ndev->stats.rx_dropped++;
942 struct net_device *ndev = (void *)_dev; local
943 struct ns83820 *dev = PRIV(ndev);
944 rx_irq(ndev);
952 rx_irq(ndev);
953 ns83820_rx_kick(ndev);
968 static void do_tx_done(struct net_device *ndev) argument
970 struct ns83820 *dev = PRIV(ndev);
974 dprintk("do_tx_done(%p)\n", ndev);
987 ndev->stats.tx_errors++;
989 ndev->stats.tx_packets++;
991 ndev->stats.tx_bytes += cmdsts & 0xffff;
1024 if (netif_queue_stopped(ndev) && start_tx_okay(dev)) {
1025 dprintk("start_queue(%p)\n", ndev);
1026 netif_start_queue(ndev);
1027 netif_wake_queue(ndev);
1059 struct net_device *ndev) argument
1061 struct ns83820 *dev = PRIV(ndev);
1077 netif_stop_queue(ndev);
1080 netif_start_queue(ndev);
1088 dprintk("stop_queue - not enough(%p)\n", ndev);
1089 netif_stop_queue(ndev);
1093 dprintk("restart queue(%p)\n", ndev);
1094 netif_start_queue(ndev);
1107 dprintk("stop_queue - last entry(%p)\n", ndev);
1108 netif_stop_queue(ndev);
1183 netif_start_queue(ndev);
1190 struct net_device *ndev = dev->ndev; local
1194 ndev->stats.rx_errors += readl(base + 0x60) & 0xffff;
1195 ndev->stats.rx_crc_errors += readl(base + 0x64) & 0xffff;
1196 ndev->stats.rx_missed_errors += readl(base + 0x68) & 0xffff;
1197 ndev->stats.rx_frame_errors += readl(base + 0x6c) & 0xffff;
1199 ndev->stats.rx_length_errors += readl(base + 0x74) & 0xffff;
1200 ndev->stats.rx_length_errors += readl(base + 0x78) & 0xffff;
1204 ndev->stats.tx_carrier_errors += readl(base + 0x88) & 0xff;
1207 static struct net_device_stats *ns83820_get_stats(struct net_device *ndev) argument
1209 struct ns83820 *dev = PRIV(ndev);
1216 return &ndev->stats;
1220 static int ns83820_get_settings(struct net_device *ndev, argument
1223 struct ns83820 *dev = PRIV(ndev);
1283 static int ns83820_set_settings(struct net_device *ndev, argument
1286 struct ns83820 *dev = PRIV(ndev);
1331 ndev->name);
1344 ndev->name);
1350 printk(KERN_INFO "%s: autoneg %s via ethtool\n", ndev->name,
1354 phy_intr(ndev);
1362 static void ns83820_get_drvinfo(struct net_device *ndev, struct ethtool_drvinfo *info) argument
1364 struct ns83820 *dev = PRIV(ndev);
1370 static u32 ns83820_get_link(struct net_device *ndev) argument
1372 struct ns83820 *dev = PRIV(ndev);
1400 static void ns83820_do_isr(struct net_device *ndev, u32 isr);
1403 struct net_device *ndev = data; local
1404 struct ns83820 *dev = PRIV(ndev);
1406 dprintk("ns83820_irq(%p)\n", ndev);
1412 ns83820_do_isr(ndev, isr);
1416 static void ns83820_do_isr(struct net_device *ndev, u32 isr) argument
1418 struct ns83820 *dev = PRIV(ndev);
1429 ns83820_rx_kick(ndev);
1446 ns83820_rx_kick(ndev);
1450 ndev->stats.rx_fifo_errors++;
1455 ndev->stats.rx_fifo_errors++;
1468 printk(KERN_ALERT "%s: BUG -- txdp out of range\n", ndev->name);
1485 do_tx_done(ndev);
1518 phy_intr(ndev);
1536 static int ns83820_stop(struct net_device *ndev) argument
1538 struct ns83820 *dev = PRIV(ndev);
1562 static void ns83820_tx_timeout(struct net_device *ndev) argument
1564 struct ns83820 *dev = PRIV(ndev);
1575 ndev->name,
1583 ns83820_do_isr(ndev, isr);
1587 do_tx_done(ndev);
1593 ndev->name,
1601 struct net_device *ndev = (void *)data; local
1602 struct ns83820 *dev = PRIV(ndev);
1610 if (time_after(jiffies, dev_trans_start(ndev) + 1*HZ) &&
1613 ndev->name,
1616 ns83820_tx_timeout(ndev);
1622 static int ns83820_open(struct net_device *ndev) argument
1624 struct ns83820 *dev = PRIV(ndev);
1633 ret = ns83820_setup_rx(ndev);
1652 dev->tx_watchdog.data = (unsigned long)ndev;
1656 netif_start_queue(ndev); /* FIXME: wait for phy to come up */
1661 ns83820_stop(ndev);
1682 static int ns83820_change_mtu(struct net_device *ndev, int new_mtu) argument
1686 ndev->mtu = new_mtu;
1690 static void ns83820_set_multicast(struct net_device *ndev) argument
1692 struct ns83820 *dev = PRIV(ndev);
1698 if (ndev->flags & IFF_PROMISC)
1703 if (ndev->flags & IFF_ALLMULTI || netdev_mc_count(ndev))
1716 static void ns83820_run_bist(struct net_device *ndev, const char *name, u32 enable, u32 done, u32 f… argument
1718 struct ns83820 *dev = PRIV(ndev);
1724 dprintk("%s: start %s\n", ndev->name, name);
1747 ndev->name, name, status, fail);
1750 ndev->name, name, status);
1752 dprintk("%s: done %s in %d loops\n", ndev->name, name, loops);
1875 static void ns83820_probe_phy(struct net_device *ndev) argument
1877 struct ns83820 *dev = PRIV(ndev);
1908 ndev->name, j,
1946 struct net_device *ndev; local
1963 ndev = alloc_etherdev(sizeof(struct ns83820));
1965 if (!ndev)
1968 dev = PRIV(ndev);
1969 dev->ndev = ndev;
1976 SET_NETDEV_DEV(ndev, &pci_dev->dev);
1979 tasklet_init(&dev->rx_tasklet, rx_action, (unsigned long)ndev);
2007 DRV_NAME, ndev);
2022 err = dev_alloc_name(ndev, ndev->name);
2029 ndev->name, le32_to_cpu(readl(dev->base + 0x22c)),
2032 ndev->netdev_ops = &netdev_ops;
2033 ndev->ethtool_ops = &ops;
2034 ndev->watchdog_timeo = 5 * HZ;
2035 pci_set_drvdata(pci_dev, ndev);
2041 ns83820_run_bist(ndev, "sram bist", PTSCR_RBIST_EN,
2043 ns83820_run_bist(ndev, "eeprom bist", PTSCR_EEBIST_EN, 0,
2045 ns83820_run_bist(ndev, "eeprom load", PTSCR_EELOAD_EN, 0, 0);
2052 ndev->name);
2056 ndev->name);
2083 ndev->name);
2104 printk(KERN_INFO "%s: resetting phy\n", ndev->name);
2187 ns83820_getmac(dev, ndev->dev_addr);
2190 ndev->features |= NETIF_F_SG;
2191 ndev->features |= NETIF_F_IP_CSUM;
2195 ndev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
2200 ndev->name);
2201 ndev->features |= NETIF_F_HIGHDMA;
2205 ndev->name,
2208 ndev->dev_addr, addr, pci_dev->irq,
2209 (ndev->features & NETIF_F_HIGHDMA) ? "h,sg" : "sg"
2213 ns83820_probe_phy(ndev);
2216 err = register_netdevice(ndev);
2229 free_irq(pci_dev->irq, ndev);
2237 free_netdev(ndev);
2244 struct net_device *ndev = pci_get_drvdata(pci_dev); local
2245 struct ns83820 *dev = PRIV(ndev); /* ok even if NULL */
2247 if (!ndev) /* paranoia */
2252 unregister_netdev(ndev);
2253 free_irq(dev->pci_dev->irq, ndev);
2260 free_netdev(ndev);