diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/genet/bcmgenet.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmgenet.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 20c1681bb1af..2d6f090bf644 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c | |||
@@ -2855,7 +2855,6 @@ static void bcmgenet_netif_start(struct net_device *dev) | |||
2855 | 2855 | ||
2856 | umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, true); | 2856 | umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, true); |
2857 | 2857 | ||
2858 | netif_tx_start_all_queues(dev); | ||
2859 | bcmgenet_enable_tx_napi(priv); | 2858 | bcmgenet_enable_tx_napi(priv); |
2860 | 2859 | ||
2861 | /* Monitor link interrupts now */ | 2860 | /* Monitor link interrupts now */ |
@@ -2937,6 +2936,8 @@ static int bcmgenet_open(struct net_device *dev) | |||
2937 | 2936 | ||
2938 | bcmgenet_netif_start(dev); | 2937 | bcmgenet_netif_start(dev); |
2939 | 2938 | ||
2939 | netif_tx_start_all_queues(dev); | ||
2940 | |||
2940 | return 0; | 2941 | return 0; |
2941 | 2942 | ||
2942 | err_irq1: | 2943 | err_irq1: |
@@ -2958,7 +2959,7 @@ static void bcmgenet_netif_stop(struct net_device *dev) | |||
2958 | struct bcmgenet_priv *priv = netdev_priv(dev); | 2959 | struct bcmgenet_priv *priv = netdev_priv(dev); |
2959 | 2960 | ||
2960 | bcmgenet_disable_tx_napi(priv); | 2961 | bcmgenet_disable_tx_napi(priv); |
2961 | netif_tx_stop_all_queues(dev); | 2962 | netif_tx_disable(dev); |
2962 | 2963 | ||
2963 | /* Disable MAC receive */ | 2964 | /* Disable MAC receive */ |
2964 | umac_enable_set(priv, CMD_RX_EN, false); | 2965 | umac_enable_set(priv, CMD_RX_EN, false); |
@@ -3620,13 +3621,13 @@ static int bcmgenet_suspend(struct device *d) | |||
3620 | if (!netif_running(dev)) | 3621 | if (!netif_running(dev)) |
3621 | return 0; | 3622 | return 0; |
3622 | 3623 | ||
3624 | netif_device_detach(dev); | ||
3625 | |||
3623 | bcmgenet_netif_stop(dev); | 3626 | bcmgenet_netif_stop(dev); |
3624 | 3627 | ||
3625 | if (!device_may_wakeup(d)) | 3628 | if (!device_may_wakeup(d)) |
3626 | phy_suspend(dev->phydev); | 3629 | phy_suspend(dev->phydev); |
3627 | 3630 | ||
3628 | netif_device_detach(dev); | ||
3629 | |||
3630 | /* Prepare the device for Wake-on-LAN and switch to the slow clock */ | 3631 | /* Prepare the device for Wake-on-LAN and switch to the slow clock */ |
3631 | if (device_may_wakeup(d) && priv->wolopts) { | 3632 | if (device_may_wakeup(d) && priv->wolopts) { |
3632 | ret = bcmgenet_power_down(priv, GENET_POWER_WOL_MAGIC); | 3633 | ret = bcmgenet_power_down(priv, GENET_POWER_WOL_MAGIC); |
@@ -3700,8 +3701,6 @@ static int bcmgenet_resume(struct device *d) | |||
3700 | /* Always enable ring 16 - descriptor ring */ | 3701 | /* Always enable ring 16 - descriptor ring */ |
3701 | bcmgenet_enable_dma(priv, dma_ctrl); | 3702 | bcmgenet_enable_dma(priv, dma_ctrl); |
3702 | 3703 | ||
3703 | netif_device_attach(dev); | ||
3704 | |||
3705 | if (!device_may_wakeup(d)) | 3704 | if (!device_may_wakeup(d)) |
3706 | phy_resume(dev->phydev); | 3705 | phy_resume(dev->phydev); |
3707 | 3706 | ||
@@ -3710,6 +3709,8 @@ static int bcmgenet_resume(struct device *d) | |||
3710 | 3709 | ||
3711 | bcmgenet_netif_start(dev); | 3710 | bcmgenet_netif_start(dev); |
3712 | 3711 | ||
3712 | netif_device_attach(dev); | ||
3713 | |||
3713 | return 0; | 3714 | return 0; |
3714 | 3715 | ||
3715 | out_clk_disable: | 3716 | out_clk_disable: |