diff options
Diffstat (limited to 'drivers/net/tehuti.c')
-rw-r--r-- | drivers/net/tehuti.c | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c index ec9dfb251f30..80b404f2b938 100644 --- a/drivers/net/tehuti.c +++ b/drivers/net/tehuti.c | |||
@@ -420,7 +420,7 @@ static int bdx_hw_start(struct bdx_priv *priv) | |||
420 | GMAC_RX_FILTER_AM | GMAC_RX_FILTER_AB); | 420 | GMAC_RX_FILTER_AM | GMAC_RX_FILTER_AB); |
421 | 421 | ||
422 | #define BDX_IRQ_TYPE ((priv->nic->irq_type == IRQ_MSI)?0:IRQF_SHARED) | 422 | #define BDX_IRQ_TYPE ((priv->nic->irq_type == IRQ_MSI)?0:IRQF_SHARED) |
423 | if ((rc = request_irq(priv->pdev->irq, &bdx_isr_napi, BDX_IRQ_TYPE, | 423 | if ((rc = request_irq(priv->pdev->irq, bdx_isr_napi, BDX_IRQ_TYPE, |
424 | ndev->name, ndev))) | 424 | ndev->name, ndev))) |
425 | goto err_irq; | 425 | goto err_irq; |
426 | bdx_enable_interrupts(priv); | 426 | bdx_enable_interrupts(priv); |
@@ -1784,9 +1784,9 @@ static void bdx_tx_cleanup(struct bdx_priv *priv) | |||
1784 | } | 1784 | } |
1785 | #endif | 1785 | #endif |
1786 | 1786 | ||
1787 | if (unlikely(netif_queue_stopped(priv->ndev) | 1787 | if (unlikely(netif_queue_stopped(priv->ndev) && |
1788 | && netif_carrier_ok(priv->ndev) | 1788 | netif_carrier_ok(priv->ndev) && |
1789 | && (priv->tx_level >= BDX_MIN_TX_LEVEL))) { | 1789 | (priv->tx_level >= BDX_MIN_TX_LEVEL))) { |
1790 | DBG("%s: %s: TX Q WAKE level %d\n", | 1790 | DBG("%s: %s: TX Q WAKE level %d\n", |
1791 | BDX_DRV_NAME, priv->ndev->name, priv->tx_level); | 1791 | BDX_DRV_NAME, priv->ndev->name, priv->tx_level); |
1792 | netif_wake_queue(priv->ndev); | 1792 | netif_wake_queue(priv->ndev); |
@@ -1878,7 +1878,7 @@ static void bdx_tx_push_desc_safe(struct bdx_priv *priv, void *data, int size) | |||
1878 | udelay(50); /* give hw a chance to clean fifo */ | 1878 | udelay(50); /* give hw a chance to clean fifo */ |
1879 | continue; | 1879 | continue; |
1880 | } | 1880 | } |
1881 | avail = MIN(avail, size); | 1881 | avail = min(avail, size); |
1882 | DBG("about to push %d bytes starting %p size %d\n", avail, | 1882 | DBG("about to push %d bytes starting %p size %d\n", avail, |
1883 | data, size); | 1883 | data, size); |
1884 | bdx_tx_push_desc(priv, data, avail); | 1884 | bdx_tx_push_desc(priv, data, avail); |
@@ -2105,12 +2105,6 @@ err_pci: | |||
2105 | } | 2105 | } |
2106 | 2106 | ||
2107 | /****************** Ethtool interface *********************/ | 2107 | /****************** Ethtool interface *********************/ |
2108 | /* get strings for tests */ | ||
2109 | static const char | ||
2110 | bdx_test_names[][ETH_GSTRING_LEN] = { | ||
2111 | "No tests defined" | ||
2112 | }; | ||
2113 | |||
2114 | /* get strings for statistics counters */ | 2108 | /* get strings for statistics counters */ |
2115 | static const char | 2109 | static const char |
2116 | bdx_stat_names[][ETH_GSTRING_LEN] = { | 2110 | bdx_stat_names[][ETH_GSTRING_LEN] = { |
@@ -2279,8 +2273,8 @@ bdx_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ecoal) | |||
2279 | (((tx_max_coal * BDX_TXF_DESC_SZ) + PCK_TH_MULT - 1) | 2273 | (((tx_max_coal * BDX_TXF_DESC_SZ) + PCK_TH_MULT - 1) |
2280 | / PCK_TH_MULT); | 2274 | / PCK_TH_MULT); |
2281 | 2275 | ||
2282 | if ((rx_coal > 0x7FFF) || (tx_coal > 0x7FFF) | 2276 | if ((rx_coal > 0x7FFF) || (tx_coal > 0x7FFF) || |
2283 | || (rx_max_coal > 0xF) || (tx_max_coal > 0xF)) | 2277 | (rx_max_coal > 0xF) || (tx_max_coal > 0xF)) |
2284 | return -EINVAL; | 2278 | return -EINVAL; |
2285 | 2279 | ||
2286 | rdintcm = INT_REG_VAL(rx_coal, GET_INT_COAL_RC(priv->rdintcm), | 2280 | rdintcm = INT_REG_VAL(rx_coal, GET_INT_COAL_RC(priv->rdintcm), |
@@ -2353,8 +2347,8 @@ bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) | |||
2353 | tx_size = 3; | 2347 | tx_size = 3; |
2354 | 2348 | ||
2355 | /*Is there anything to do? */ | 2349 | /*Is there anything to do? */ |
2356 | if ((rx_size == priv->rxf_size) | 2350 | if ((rx_size == priv->rxf_size) && |
2357 | && (tx_size == priv->txd_size)) | 2351 | (tx_size == priv->txd_size)) |
2358 | return 0; | 2352 | return 0; |
2359 | 2353 | ||
2360 | priv->rxf_size = rx_size; | 2354 | priv->rxf_size = rx_size; |
@@ -2380,9 +2374,6 @@ bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) | |||
2380 | static void bdx_get_strings(struct net_device *netdev, u32 stringset, u8 *data) | 2374 | static void bdx_get_strings(struct net_device *netdev, u32 stringset, u8 *data) |
2381 | { | 2375 | { |
2382 | switch (stringset) { | 2376 | switch (stringset) { |
2383 | case ETH_SS_TEST: | ||
2384 | memcpy(data, *bdx_test_names, sizeof(bdx_test_names)); | ||
2385 | break; | ||
2386 | case ETH_SS_STATS: | 2377 | case ETH_SS_STATS: |
2387 | memcpy(data, *bdx_stat_names, sizeof(bdx_stat_names)); | 2378 | memcpy(data, *bdx_stat_names, sizeof(bdx_stat_names)); |
2388 | break; | 2379 | break; |
@@ -2390,15 +2381,21 @@ static void bdx_get_strings(struct net_device *netdev, u32 stringset, u8 *data) | |||
2390 | } | 2381 | } |
2391 | 2382 | ||
2392 | /* | 2383 | /* |
2393 | * bdx_get_stats_count - return number of 64bit statistics counters | 2384 | * bdx_get_sset_count - return number of statistics or tests |
2394 | * @netdev | 2385 | * @netdev |
2395 | */ | 2386 | */ |
2396 | static int bdx_get_stats_count(struct net_device *netdev) | 2387 | static int bdx_get_sset_count(struct net_device *netdev, int stringset) |
2397 | { | 2388 | { |
2398 | struct bdx_priv *priv = netdev_priv(netdev); | 2389 | struct bdx_priv *priv = netdev_priv(netdev); |
2399 | BDX_ASSERT(ARRAY_SIZE(bdx_stat_names) | 2390 | |
2400 | != sizeof(struct bdx_stats) / sizeof(u64)); | 2391 | switch (stringset) { |
2401 | return ((priv->stats_flag) ? ARRAY_SIZE(bdx_stat_names) : 0); | 2392 | case ETH_SS_STATS: |
2393 | BDX_ASSERT(ARRAY_SIZE(bdx_stat_names) | ||
2394 | != sizeof(struct bdx_stats) / sizeof(u64)); | ||
2395 | return ((priv->stats_flag) ? ARRAY_SIZE(bdx_stat_names) : 0); | ||
2396 | default: | ||
2397 | return -EINVAL; | ||
2398 | } | ||
2402 | } | 2399 | } |
2403 | 2400 | ||
2404 | /* | 2401 | /* |
@@ -2441,7 +2438,7 @@ static void bdx_ethtool_ops(struct net_device *netdev) | |||
2441 | .get_sg = ethtool_op_get_sg, | 2438 | .get_sg = ethtool_op_get_sg, |
2442 | .get_tso = ethtool_op_get_tso, | 2439 | .get_tso = ethtool_op_get_tso, |
2443 | .get_strings = bdx_get_strings, | 2440 | .get_strings = bdx_get_strings, |
2444 | .get_stats_count = bdx_get_stats_count, | 2441 | .get_sset_count = bdx_get_sset_count, |
2445 | .get_ethtool_stats = bdx_get_ethtool_stats, | 2442 | .get_ethtool_stats = bdx_get_ethtool_stats, |
2446 | }; | 2443 | }; |
2447 | 2444 | ||