aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/genet/bcmgenet.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/broadcom/genet/bcmgenet.c')
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c13
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
2942err_irq1: 2943err_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
3715out_clk_disable: 3716out_clk_disable: