Lines Matching defs:ndev
415 struct net_device *ndev;
457 static inline void kick_rx(struct net_device *ndev)
459 struct ns83820 *dev = PRIV(ndev);
468 ndev->name);
539 static inline int rx_refill(struct net_device *ndev, gfp_t gfp)
541 struct ns83820 *dev = PRIV(ndev);
548 dprintk("rx_refill(%p)\n", ndev);
556 skb = __netdev_alloc_skb(ndev, REAL_RX_BUF_SIZE+16, gfp);
577 static void rx_refill_atomic(struct net_device *ndev)
579 rx_refill(ndev, GFP_ATOMIC);
586 struct net_device *ndev = dev->ndev;
588 rx_refill(ndev, GFP_KERNEL);
590 kick_rx(ndev);
598 static void phy_intr(struct net_device *ndev)
600 struct ns83820 *dev = PRIV(ndev);
692 netif_start_queue(ndev);
693 netif_wake_queue(ndev);
695 ndev->name,
700 netif_stop_queue(ndev);
701 printk(KERN_INFO "%s: link now down.\n", ndev->name);
707 static int ns83820_setup_rx(struct net_device *ndev)
709 struct ns83820 *dev = PRIV(ndev);
713 dprintk("ns83820_setup_rx(%p)\n", ndev);
726 ret = rx_refill(ndev, GFP_KERNEL);
739 phy_intr(ndev);
758 kick_rx(ndev);
797 static void ns83820_rx_kick(struct net_device *ndev)
799 struct ns83820 *dev = PRIV(ndev);
802 rx_refill_atomic(ndev);
803 kick_rx(ndev);
810 kick_rx(ndev);
812 printk(KERN_DEBUG "%s: BAD\n", ndev->name);
818 static void rx_irq(struct net_device *ndev)
820 struct ns83820 *dev = PRIV(ndev);
829 dprintk("rx_irq(%p)\n", ndev);
887 ndev->stats.multicast++;
888 ndev->stats.rx_packets++;
889 ndev->stats.rx_bytes += len;
895 skb->protocol = eth_type_trans(skb, ndev);
907 ndev->stats.rx_dropped++;
931 struct net_device *ndev = dev->ndev;
932 rx_irq(ndev);
940 rx_irq(ndev);
941 ns83820_rx_kick(ndev);
956 static void do_tx_done(struct net_device *ndev)
958 struct ns83820 *dev = PRIV(ndev);
962 dprintk("do_tx_done(%p)\n", ndev);
975 ndev->stats.tx_errors++;
977 ndev->stats.tx_packets++;
979 ndev->stats.tx_bytes += cmdsts & 0xffff;
1008 if (netif_queue_stopped(ndev) && start_tx_okay(dev)) {
1009 dprintk("start_queue(%p)\n", ndev);
1010 netif_start_queue(ndev);
1011 netif_wake_queue(ndev);
1043 struct net_device *ndev)
1045 struct ns83820 *dev = PRIV(ndev);
1061 netif_stop_queue(ndev);
1064 netif_start_queue(ndev);
1072 dprintk("stop_queue - not enough(%p)\n", ndev);
1073 netif_stop_queue(ndev);
1077 dprintk("restart queue(%p)\n", ndev);
1078 netif_start_queue(ndev);
1091 dprintk("stop_queue - last entry(%p)\n", ndev);
1092 netif_stop_queue(ndev);
1168 netif_start_queue(ndev);
1175 struct net_device *ndev = dev->ndev;
1179 ndev->stats.rx_errors += readl(base + 0x60) & 0xffff;
1180 ndev->stats.rx_crc_errors += readl(base + 0x64) & 0xffff;
1181 ndev->stats.rx_missed_errors += readl(base + 0x68) & 0xffff;
1182 ndev->stats.rx_frame_errors += readl(base + 0x6c) & 0xffff;
1183 /*ndev->stats.rx_symbol_errors +=*/ readl(base + 0x70);
1184 ndev->stats.rx_length_errors += readl(base + 0x74) & 0xffff;
1185 ndev->stats.rx_length_errors += readl(base + 0x78) & 0xffff;
1186 /*ndev->stats.rx_badopcode_errors += */ readl(base + 0x7c);
1187 /*ndev->stats.rx_pause_count += */ readl(base + 0x80);
1188 /*ndev->stats.tx_pause_count += */ readl(base + 0x84);
1189 ndev->stats.tx_carrier_errors += readl(base + 0x88) & 0xff;
1192 static struct net_device_stats *ns83820_get_stats(struct net_device *ndev)
1194 struct ns83820 *dev = PRIV(ndev);
1201 return &ndev->stats;
1205 static int ns83820_get_link_ksettings(struct net_device *ndev,
1208 struct ns83820 *dev = PRIV(ndev);
1272 static int ns83820_set_link_ksettings(struct net_device *ndev,
1275 struct ns83820 *dev = PRIV(ndev);
1320 ndev->name);
1333 ndev->name);
1339 printk(KERN_INFO "%s: autoneg %s via ethtool\n", ndev->name,
1343 phy_intr(ndev);
1351 static void ns83820_get_drvinfo(struct net_device *ndev, struct ethtool_drvinfo *info)
1353 struct ns83820 *dev = PRIV(ndev);
1359 static u32 ns83820_get_link(struct net_device *ndev)
1361 struct ns83820 *dev = PRIV(ndev);
1389 static void ns83820_do_isr(struct net_device *ndev, u32 isr);
1392 struct net_device *ndev = data;
1393 struct ns83820 *dev = PRIV(ndev);
1395 dprintk("ns83820_irq(%p)\n", ndev);
1401 ns83820_do_isr(ndev, isr);
1405 static void ns83820_do_isr(struct net_device *ndev, u32 isr)
1407 struct ns83820 *dev = PRIV(ndev);
1418 ns83820_rx_kick(ndev);
1430 //rx_irq(ndev);
1435 ns83820_rx_kick(ndev);
1439 ndev->stats.rx_fifo_errors++;
1444 ndev->stats.rx_fifo_errors++;
1457 printk(KERN_ALERT "%s: BUG -- txdp out of range\n", ndev->name);
1474 do_tx_done(ndev);
1507 phy_intr(ndev);
1525 static int ns83820_stop(struct net_device *ndev)
1527 struct ns83820 *dev = PRIV(ndev);
1551 static void ns83820_tx_timeout(struct net_device *ndev, unsigned int txqueue)
1553 struct ns83820 *dev = PRIV(ndev);
1564 ndev->name,
1572 ns83820_do_isr(ndev, isr);
1576 do_tx_done(ndev);
1582 ndev->name,
1591 struct net_device *ndev = dev->ndev;
1599 if (time_after(jiffies, dev_trans_start(ndev) + 1*HZ) &&
1602 ndev->name,
1605 ns83820_tx_timeout(ndev, UINT_MAX);
1611 static int ns83820_open(struct net_device *ndev)
1613 struct ns83820 *dev = PRIV(ndev);
1622 ret = ns83820_setup_rx(ndev);
1643 netif_start_queue(ndev); /* FIXME: wait for phy to come up */
1648 ns83820_stop(ndev);
1652 static void ns83820_getmac(struct ns83820 *dev, struct net_device *ndev)
1669 eth_hw_addr_set(ndev, mac);
1672 static void ns83820_set_multicast(struct net_device *ndev)
1674 struct ns83820 *dev = PRIV(ndev);
1680 if (ndev->flags & IFF_PROMISC)
1685 if (ndev->flags & IFF_ALLMULTI || netdev_mc_count(ndev))
1698 static void ns83820_run_bist(struct net_device *ndev, const char *name, u32 enable, u32 done, u32 fail)
1700 struct ns83820 *dev = PRIV(ndev);
1706 dprintk("%s: start %s\n", ndev->name, name);
1729 ndev->name, name, status, fail);
1732 ndev->name, name, status);
1734 dprintk("%s: done %s in %d loops\n", ndev->name, name, loops);
1857 static void ns83820_probe_phy(struct net_device *ndev)
1859 struct ns83820 *dev = PRIV(ndev);
1865 ndev->name, j,
1899 struct net_device *ndev;
1916 ndev = alloc_etherdev(sizeof(struct ns83820));
1918 if (!ndev)
1921 dev = PRIV(ndev);
1922 dev->ndev = ndev;
1929 SET_NETDEV_DEV(ndev, &pci_dev->dev);
1962 DRV_NAME, ndev);
1977 err = dev_alloc_name(ndev, ndev->name);
1984 ndev->name, le32_to_cpu(readl(dev->base + 0x22c)),
1987 ndev->netdev_ops = &netdev_ops;
1988 ndev->ethtool_ops = &ops;
1989 ndev->watchdog_timeo = 5 * HZ;
1990 pci_set_drvdata(pci_dev, ndev);
1996 ns83820_run_bist(ndev, "sram bist", PTSCR_RBIST_EN,
1998 ns83820_run_bist(ndev, "eeprom bist", PTSCR_EEBIST_EN, 0,
2000 ns83820_run_bist(ndev, "eeprom load", PTSCR_EELOAD_EN, 0, 0);
2007 ndev->name);
2011 ndev->name);
2038 ndev->name);
2059 printk(KERN_INFO "%s: resetting phy\n", ndev->name);
2142 ns83820_getmac(dev, ndev);
2145 ndev->features |= NETIF_F_SG;
2146 ndev->features |= NETIF_F_IP_CSUM;
2148 ndev->min_mtu = 0;
2152 ndev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
2157 ndev->name);
2158 ndev->features |= NETIF_F_HIGHDMA;
2162 ndev->name,
2165 ndev->dev_addr, addr, pci_dev->irq,
2166 (ndev->features & NETIF_F_HIGHDMA) ? "h,sg" : "sg"
2170 ns83820_probe_phy(ndev);
2173 err = register_netdevice(ndev);
2186 free_irq(pci_dev->irq, ndev);
2196 free_netdev(ndev);
2203 struct net_device *ndev = pci_get_drvdata(pci_dev);
2204 struct ns83820 *dev = PRIV(ndev); /* ok even if NULL */
2206 if (!ndev) /* paranoia */
2211 unregister_netdev(ndev);
2212 free_irq(dev->pci_dev->irq, ndev);
2219 free_netdev(ndev);