Loading drivers/net/3c509.c +1 −0 Original line number Diff line number Diff line Loading @@ -1482,6 +1482,7 @@ el3_resume(struct device *pdev) spin_lock_irqsave(&lp->lock, flags); outw(PowerUp, ioaddr + EL3_CMD); EL3WINDOW(0); el3_up(dev); if (netif_running(dev)) Loading drivers/net/r8169.c +58 −35 Original line number Diff line number Diff line Loading @@ -437,6 +437,22 @@ enum features { RTL_FEATURE_GMII = (1 << 2), }; struct rtl8169_counters { __le64 tx_packets; __le64 rx_packets; __le64 tx_errors; __le32 rx_errors; __le16 rx_missed; __le16 align_errors; __le32 tx_one_collision; __le32 tx_multi_collision; __le64 rx_unicast; __le64 rx_broadcast; __le32 rx_multicast; __le16 tx_aborted; __le16 tx_underun; }; struct rtl8169_private { void __iomem *mmio_addr; /* memory map physical address */ struct pci_dev *pci_dev; /* Index of PCI device */ Loading Loading @@ -480,6 +496,7 @@ struct rtl8169_private { unsigned features; struct mii_if_info mii; struct rtl8169_counters counters; }; MODULE_AUTHOR("Realtek and the Linux r8169 crew <netdev@vger.kernel.org>"); Loading Loading @@ -1100,22 +1117,6 @@ static const char rtl8169_gstrings[][ETH_GSTRING_LEN] = { "tx_underrun", }; struct rtl8169_counters { __le64 tx_packets; __le64 rx_packets; __le64 tx_errors; __le32 rx_errors; __le16 rx_missed; __le16 align_errors; __le32 tx_one_collision; __le32 tx_multi_collision; __le64 rx_unicast; __le64 rx_broadcast; __le32 rx_multicast; __le16 tx_aborted; __le16 tx_underun; }; static int rtl8169_get_sset_count(struct net_device *dev, int sset) { switch (sset) { Loading @@ -1126,16 +1127,21 @@ static int rtl8169_get_sset_count(struct net_device *dev, int sset) } } static void rtl8169_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) static void rtl8169_update_counters(struct net_device *dev) { struct rtl8169_private *tp = netdev_priv(dev); void __iomem *ioaddr = tp->mmio_addr; struct rtl8169_counters *counters; dma_addr_t paddr; u32 cmd; int wait = 1000; ASSERT_RTNL(); /* * Some chips are unable to dump tally counters when the receiver * is disabled. */ if ((RTL_R8(ChipCmd) & CmdRxEnb) == 0) return; counters = pci_alloc_consistent(tp->pci_dev, sizeof(*counters), &paddr); if (!counters) Loading @@ -1146,31 +1152,45 @@ static void rtl8169_get_ethtool_stats(struct net_device *dev, RTL_W32(CounterAddrLow, cmd); RTL_W32(CounterAddrLow, cmd | CounterDump); while (RTL_R32(CounterAddrLow) & CounterDump) { if (msleep_interruptible(1)) while (wait--) { if ((RTL_R32(CounterAddrLow) & CounterDump) == 0) { /* copy updated counters */ memcpy(&tp->counters, counters, sizeof(*counters)); break; } udelay(10); } RTL_W32(CounterAddrLow, 0); RTL_W32(CounterAddrHigh, 0); data[0] = le64_to_cpu(counters->tx_packets); data[1] = le64_to_cpu(counters->rx_packets); data[2] = le64_to_cpu(counters->tx_errors); data[3] = le32_to_cpu(counters->rx_errors); data[4] = le16_to_cpu(counters->rx_missed); data[5] = le16_to_cpu(counters->align_errors); data[6] = le32_to_cpu(counters->tx_one_collision); data[7] = le32_to_cpu(counters->tx_multi_collision); data[8] = le64_to_cpu(counters->rx_unicast); data[9] = le64_to_cpu(counters->rx_broadcast); data[10] = le32_to_cpu(counters->rx_multicast); data[11] = le16_to_cpu(counters->tx_aborted); data[12] = le16_to_cpu(counters->tx_underun); pci_free_consistent(tp->pci_dev, sizeof(*counters), counters, paddr); } static void rtl8169_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) { struct rtl8169_private *tp = netdev_priv(dev); ASSERT_RTNL(); rtl8169_update_counters(dev); data[0] = le64_to_cpu(tp->counters.tx_packets); data[1] = le64_to_cpu(tp->counters.rx_packets); data[2] = le64_to_cpu(tp->counters.tx_errors); data[3] = le32_to_cpu(tp->counters.rx_errors); data[4] = le16_to_cpu(tp->counters.rx_missed); data[5] = le16_to_cpu(tp->counters.align_errors); data[6] = le32_to_cpu(tp->counters.tx_one_collision); data[7] = le32_to_cpu(tp->counters.tx_multi_collision); data[8] = le64_to_cpu(tp->counters.rx_unicast); data[9] = le64_to_cpu(tp->counters.rx_broadcast); data[10] = le32_to_cpu(tp->counters.rx_multicast); data[11] = le16_to_cpu(tp->counters.tx_aborted); data[12] = le16_to_cpu(tp->counters.tx_underun); } static void rtl8169_get_strings(struct net_device *dev, u32 stringset, u8 *data) { switch(stringset) { Loading Loading @@ -3682,6 +3702,9 @@ static int rtl8169_close(struct net_device *dev) struct rtl8169_private *tp = netdev_priv(dev); struct pci_dev *pdev = tp->pci_dev; /* update counters before going down */ rtl8169_update_counters(dev); rtl8169_down(dev); free_irq(dev->irq, dev); Loading drivers/net/sungem.c +4 −4 Original line number Diff line number Diff line Loading @@ -2221,6 +2221,8 @@ static int gem_do_start(struct net_device *dev) gp->running = 1; napi_enable(&gp->napi); if (gp->lstate == link_up) { netif_carrier_on(gp->dev); gem_set_link_modes(gp); Loading @@ -2238,6 +2240,8 @@ static int gem_do_start(struct net_device *dev) spin_lock_irqsave(&gp->lock, flags); spin_lock(&gp->tx_lock); napi_disable(&gp->napi); gp->running = 0; gem_reset(gp); gem_clean_rings(gp); Loading Loading @@ -2338,8 +2342,6 @@ static int gem_open(struct net_device *dev) if (!gp->asleep) rc = gem_do_start(dev); gp->opened = (rc == 0); if (gp->opened) napi_enable(&gp->napi); mutex_unlock(&gp->pm_mutex); Loading Loading @@ -2476,8 +2478,6 @@ static int gem_resume(struct pci_dev *pdev) /* Re-attach net device */ netif_device_attach(dev); napi_enable(&gp->napi); } spin_lock_irqsave(&gp->lock, flags); Loading drivers/net/sunhme.c +8 −4 Original line number Diff line number Diff line Loading @@ -2629,6 +2629,14 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe) int i, qfe_slot = -1; int err = -ENODEV; sbus_dp = to_of_device(op->dev.parent)->node; if (is_qfe) sbus_dp = to_of_device(op->dev.parent->parent)->node; /* We can match PCI devices too, do not accept those here. */ if (strcmp(sbus_dp->name, "sbus")) return err; if (is_qfe) { qp = quattro_sbus_find(op); if (qp == NULL) Loading Loading @@ -2734,10 +2742,6 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe) if (qp != NULL) hp->happy_flags |= HFLAG_QUATTRO; sbus_dp = to_of_device(op->dev.parent)->node; if (is_qfe) sbus_dp = to_of_device(op->dev.parent->parent)->node; /* Get the supported DVMA burst sizes from our Happy SBUS. */ hp->happy_bursts = of_getintprop_default(sbus_dp, "burst-sizes", 0x00); Loading drivers/net/wireless/iwlwifi/iwl-sta.c +3 −0 Original line number Diff line number Diff line Loading @@ -483,6 +483,9 @@ void iwl_clear_stations_table(struct iwl_priv *priv) priv->num_stations = 0; memset(priv->stations, 0, sizeof(priv->stations)); /* clean ucode key table bit map */ priv->ucode_key_table = 0; spin_unlock_irqrestore(&priv->sta_lock, flags); } EXPORT_SYMBOL(iwl_clear_stations_table); Loading Loading
drivers/net/3c509.c +1 −0 Original line number Diff line number Diff line Loading @@ -1482,6 +1482,7 @@ el3_resume(struct device *pdev) spin_lock_irqsave(&lp->lock, flags); outw(PowerUp, ioaddr + EL3_CMD); EL3WINDOW(0); el3_up(dev); if (netif_running(dev)) Loading
drivers/net/r8169.c +58 −35 Original line number Diff line number Diff line Loading @@ -437,6 +437,22 @@ enum features { RTL_FEATURE_GMII = (1 << 2), }; struct rtl8169_counters { __le64 tx_packets; __le64 rx_packets; __le64 tx_errors; __le32 rx_errors; __le16 rx_missed; __le16 align_errors; __le32 tx_one_collision; __le32 tx_multi_collision; __le64 rx_unicast; __le64 rx_broadcast; __le32 rx_multicast; __le16 tx_aborted; __le16 tx_underun; }; struct rtl8169_private { void __iomem *mmio_addr; /* memory map physical address */ struct pci_dev *pci_dev; /* Index of PCI device */ Loading Loading @@ -480,6 +496,7 @@ struct rtl8169_private { unsigned features; struct mii_if_info mii; struct rtl8169_counters counters; }; MODULE_AUTHOR("Realtek and the Linux r8169 crew <netdev@vger.kernel.org>"); Loading Loading @@ -1100,22 +1117,6 @@ static const char rtl8169_gstrings[][ETH_GSTRING_LEN] = { "tx_underrun", }; struct rtl8169_counters { __le64 tx_packets; __le64 rx_packets; __le64 tx_errors; __le32 rx_errors; __le16 rx_missed; __le16 align_errors; __le32 tx_one_collision; __le32 tx_multi_collision; __le64 rx_unicast; __le64 rx_broadcast; __le32 rx_multicast; __le16 tx_aborted; __le16 tx_underun; }; static int rtl8169_get_sset_count(struct net_device *dev, int sset) { switch (sset) { Loading @@ -1126,16 +1127,21 @@ static int rtl8169_get_sset_count(struct net_device *dev, int sset) } } static void rtl8169_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) static void rtl8169_update_counters(struct net_device *dev) { struct rtl8169_private *tp = netdev_priv(dev); void __iomem *ioaddr = tp->mmio_addr; struct rtl8169_counters *counters; dma_addr_t paddr; u32 cmd; int wait = 1000; ASSERT_RTNL(); /* * Some chips are unable to dump tally counters when the receiver * is disabled. */ if ((RTL_R8(ChipCmd) & CmdRxEnb) == 0) return; counters = pci_alloc_consistent(tp->pci_dev, sizeof(*counters), &paddr); if (!counters) Loading @@ -1146,31 +1152,45 @@ static void rtl8169_get_ethtool_stats(struct net_device *dev, RTL_W32(CounterAddrLow, cmd); RTL_W32(CounterAddrLow, cmd | CounterDump); while (RTL_R32(CounterAddrLow) & CounterDump) { if (msleep_interruptible(1)) while (wait--) { if ((RTL_R32(CounterAddrLow) & CounterDump) == 0) { /* copy updated counters */ memcpy(&tp->counters, counters, sizeof(*counters)); break; } udelay(10); } RTL_W32(CounterAddrLow, 0); RTL_W32(CounterAddrHigh, 0); data[0] = le64_to_cpu(counters->tx_packets); data[1] = le64_to_cpu(counters->rx_packets); data[2] = le64_to_cpu(counters->tx_errors); data[3] = le32_to_cpu(counters->rx_errors); data[4] = le16_to_cpu(counters->rx_missed); data[5] = le16_to_cpu(counters->align_errors); data[6] = le32_to_cpu(counters->tx_one_collision); data[7] = le32_to_cpu(counters->tx_multi_collision); data[8] = le64_to_cpu(counters->rx_unicast); data[9] = le64_to_cpu(counters->rx_broadcast); data[10] = le32_to_cpu(counters->rx_multicast); data[11] = le16_to_cpu(counters->tx_aborted); data[12] = le16_to_cpu(counters->tx_underun); pci_free_consistent(tp->pci_dev, sizeof(*counters), counters, paddr); } static void rtl8169_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) { struct rtl8169_private *tp = netdev_priv(dev); ASSERT_RTNL(); rtl8169_update_counters(dev); data[0] = le64_to_cpu(tp->counters.tx_packets); data[1] = le64_to_cpu(tp->counters.rx_packets); data[2] = le64_to_cpu(tp->counters.tx_errors); data[3] = le32_to_cpu(tp->counters.rx_errors); data[4] = le16_to_cpu(tp->counters.rx_missed); data[5] = le16_to_cpu(tp->counters.align_errors); data[6] = le32_to_cpu(tp->counters.tx_one_collision); data[7] = le32_to_cpu(tp->counters.tx_multi_collision); data[8] = le64_to_cpu(tp->counters.rx_unicast); data[9] = le64_to_cpu(tp->counters.rx_broadcast); data[10] = le32_to_cpu(tp->counters.rx_multicast); data[11] = le16_to_cpu(tp->counters.tx_aborted); data[12] = le16_to_cpu(tp->counters.tx_underun); } static void rtl8169_get_strings(struct net_device *dev, u32 stringset, u8 *data) { switch(stringset) { Loading Loading @@ -3682,6 +3702,9 @@ static int rtl8169_close(struct net_device *dev) struct rtl8169_private *tp = netdev_priv(dev); struct pci_dev *pdev = tp->pci_dev; /* update counters before going down */ rtl8169_update_counters(dev); rtl8169_down(dev); free_irq(dev->irq, dev); Loading
drivers/net/sungem.c +4 −4 Original line number Diff line number Diff line Loading @@ -2221,6 +2221,8 @@ static int gem_do_start(struct net_device *dev) gp->running = 1; napi_enable(&gp->napi); if (gp->lstate == link_up) { netif_carrier_on(gp->dev); gem_set_link_modes(gp); Loading @@ -2238,6 +2240,8 @@ static int gem_do_start(struct net_device *dev) spin_lock_irqsave(&gp->lock, flags); spin_lock(&gp->tx_lock); napi_disable(&gp->napi); gp->running = 0; gem_reset(gp); gem_clean_rings(gp); Loading Loading @@ -2338,8 +2342,6 @@ static int gem_open(struct net_device *dev) if (!gp->asleep) rc = gem_do_start(dev); gp->opened = (rc == 0); if (gp->opened) napi_enable(&gp->napi); mutex_unlock(&gp->pm_mutex); Loading Loading @@ -2476,8 +2478,6 @@ static int gem_resume(struct pci_dev *pdev) /* Re-attach net device */ netif_device_attach(dev); napi_enable(&gp->napi); } spin_lock_irqsave(&gp->lock, flags); Loading
drivers/net/sunhme.c +8 −4 Original line number Diff line number Diff line Loading @@ -2629,6 +2629,14 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe) int i, qfe_slot = -1; int err = -ENODEV; sbus_dp = to_of_device(op->dev.parent)->node; if (is_qfe) sbus_dp = to_of_device(op->dev.parent->parent)->node; /* We can match PCI devices too, do not accept those here. */ if (strcmp(sbus_dp->name, "sbus")) return err; if (is_qfe) { qp = quattro_sbus_find(op); if (qp == NULL) Loading Loading @@ -2734,10 +2742,6 @@ static int __devinit happy_meal_sbus_probe_one(struct of_device *op, int is_qfe) if (qp != NULL) hp->happy_flags |= HFLAG_QUATTRO; sbus_dp = to_of_device(op->dev.parent)->node; if (is_qfe) sbus_dp = to_of_device(op->dev.parent->parent)->node; /* Get the supported DVMA burst sizes from our Happy SBUS. */ hp->happy_bursts = of_getintprop_default(sbus_dp, "burst-sizes", 0x00); Loading
drivers/net/wireless/iwlwifi/iwl-sta.c +3 −0 Original line number Diff line number Diff line Loading @@ -483,6 +483,9 @@ void iwl_clear_stations_table(struct iwl_priv *priv) priv->num_stations = 0; memset(priv->stations, 0, sizeof(priv->stations)); /* clean ucode key table bit map */ priv->ucode_key_table = 0; spin_unlock_irqrestore(&priv->sta_lock, flags); } EXPORT_SYMBOL(iwl_clear_stations_table); Loading