8139too.c (a402eae64d0ad12b1c4a411f250d6c161e67f623) 8139too.c (bc1f44709cf27fb2a5766cadafe7e2ad5e9cb221)
1/*
2
3 8139too.c: A RealTek RTL-8139 Fast Ethernet driver for Linux.
4
5 Maintained by Jeff Garzik <jgarzik@pobox.com>
6 Copyright 2000-2002 Jeff Garzik
7
8 Much code comes from Donald Becker's rtl8139.c driver,

--- 639 unchanged lines hidden (view full) ---

648#ifdef CONFIG_NET_POLL_CONTROLLER
649static void rtl8139_poll_controller(struct net_device *dev);
650#endif
651static int rtl8139_set_mac_address(struct net_device *dev, void *p);
652static int rtl8139_poll(struct napi_struct *napi, int budget);
653static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance);
654static int rtl8139_close (struct net_device *dev);
655static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
1/*
2
3 8139too.c: A RealTek RTL-8139 Fast Ethernet driver for Linux.
4
5 Maintained by Jeff Garzik <jgarzik@pobox.com>
6 Copyright 2000-2002 Jeff Garzik
7
8 Much code comes from Donald Becker's rtl8139.c driver,

--- 639 unchanged lines hidden (view full) ---

648#ifdef CONFIG_NET_POLL_CONTROLLER
649static void rtl8139_poll_controller(struct net_device *dev);
650#endif
651static int rtl8139_set_mac_address(struct net_device *dev, void *p);
652static int rtl8139_poll(struct napi_struct *napi, int budget);
653static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance);
654static int rtl8139_close (struct net_device *dev);
655static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
656static struct rtnl_link_stats64 *rtl8139_get_stats64(struct net_device *dev,
657 struct rtnl_link_stats64
658 *stats);
656static void rtl8139_get_stats64(struct net_device *dev,
657 struct rtnl_link_stats64 *stats);
659static void rtl8139_set_rx_mode (struct net_device *dev);
660static void __set_rx_mode (struct net_device *dev);
661static void rtl8139_hw_start (struct net_device *dev);
662static void rtl8139_thread (struct work_struct *work);
663static void rtl8139_tx_timeout_task(struct work_struct *work);
664static const struct ethtool_ops rtl8139_ethtool_ops;
665
666/* write MMIO register, with flush */

--- 1844 unchanged lines hidden (view full) ---

2511 spin_lock_irq(&tp->lock);
2512 rc = generic_mii_ioctl(&tp->mii, if_mii(rq), cmd, NULL);
2513 spin_unlock_irq(&tp->lock);
2514
2515 return rc;
2516}
2517
2518
658static void rtl8139_set_rx_mode (struct net_device *dev);
659static void __set_rx_mode (struct net_device *dev);
660static void rtl8139_hw_start (struct net_device *dev);
661static void rtl8139_thread (struct work_struct *work);
662static void rtl8139_tx_timeout_task(struct work_struct *work);
663static const struct ethtool_ops rtl8139_ethtool_ops;
664
665/* write MMIO register, with flush */

--- 1844 unchanged lines hidden (view full) ---

2510 spin_lock_irq(&tp->lock);
2511 rc = generic_mii_ioctl(&tp->mii, if_mii(rq), cmd, NULL);
2512 spin_unlock_irq(&tp->lock);
2513
2514 return rc;
2515}
2516
2517
2519static struct rtnl_link_stats64 *
2518static void
2520rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
2521{
2522 struct rtl8139_private *tp = netdev_priv(dev);
2523 void __iomem *ioaddr = tp->mmio_addr;
2524 unsigned long flags;
2525 unsigned int start;
2526
2527 if (netif_running(dev)) {

--- 11 unchanged lines hidden (view full) ---

2539 stats->rx_bytes = tp->rx_stats.bytes;
2540 } while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start));
2541
2542 do {
2543 start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp);
2544 stats->tx_packets = tp->tx_stats.packets;
2545 stats->tx_bytes = tp->tx_stats.bytes;
2546 } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
2519rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
2520{
2521 struct rtl8139_private *tp = netdev_priv(dev);
2522 void __iomem *ioaddr = tp->mmio_addr;
2523 unsigned long flags;
2524 unsigned int start;
2525
2526 if (netif_running(dev)) {

--- 11 unchanged lines hidden (view full) ---

2538 stats->rx_bytes = tp->rx_stats.bytes;
2539 } while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start));
2540
2541 do {
2542 start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp);
2543 stats->tx_packets = tp->tx_stats.packets;
2544 stats->tx_bytes = tp->tx_stats.bytes;
2545 } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
2547
2548 return stats;
2549}
2550
2551/* Set or clear the multicast filter for this adaptor.
2552 This routine is not state sensitive and need not be SMP locked. */
2553
2554static void __set_rx_mode (struct net_device *dev)
2555{
2556 struct rtl8139_private *tp = netdev_priv(dev);

--- 138 unchanged lines hidden ---
2546}
2547
2548/* Set or clear the multicast filter for this adaptor.
2549 This routine is not state sensitive and need not be SMP locked. */
2550
2551static void __set_rx_mode (struct net_device *dev)
2552{
2553 struct rtl8139_private *tp = netdev_priv(dev);

--- 138 unchanged lines hidden ---