aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bcmsysport.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/broadcom/bcmsysport.c')
-rw-r--r--drivers/net/ethernet/broadcom/bcmsysport.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index 4122553e224b..0e2d99c737e3 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -1902,9 +1902,6 @@ static void bcm_sysport_netif_start(struct net_device *dev)
1902 intrl2_1_mask_clear(priv, 0xffffffff); 1902 intrl2_1_mask_clear(priv, 0xffffffff);
1903 else 1903 else
1904 intrl2_0_mask_clear(priv, INTRL2_0_TDMA_MBDONE_MASK); 1904 intrl2_0_mask_clear(priv, INTRL2_0_TDMA_MBDONE_MASK);
1905
1906 /* Last call before we start the real business */
1907 netif_tx_start_all_queues(dev);
1908} 1905}
1909 1906
1910static void rbuf_init(struct bcm_sysport_priv *priv) 1907static void rbuf_init(struct bcm_sysport_priv *priv)
@@ -2048,6 +2045,8 @@ static int bcm_sysport_open(struct net_device *dev)
2048 2045
2049 bcm_sysport_netif_start(dev); 2046 bcm_sysport_netif_start(dev);
2050 2047
2048 netif_tx_start_all_queues(dev);
2049
2051 return 0; 2050 return 0;
2052 2051
2053out_clear_rx_int: 2052out_clear_rx_int:
@@ -2071,7 +2070,7 @@ static void bcm_sysport_netif_stop(struct net_device *dev)
2071 struct bcm_sysport_priv *priv = netdev_priv(dev); 2070 struct bcm_sysport_priv *priv = netdev_priv(dev);
2072 2071
2073 /* stop all software from updating hardware */ 2072 /* stop all software from updating hardware */
2074 netif_tx_stop_all_queues(dev); 2073 netif_tx_disable(dev);
2075 napi_disable(&priv->napi); 2074 napi_disable(&priv->napi);
2076 cancel_work_sync(&priv->dim.dim.work); 2075 cancel_work_sync(&priv->dim.dim.work);
2077 phy_stop(dev->phydev); 2076 phy_stop(dev->phydev);
@@ -2658,12 +2657,12 @@ static int __maybe_unused bcm_sysport_suspend(struct device *d)
2658 if (!netif_running(dev)) 2657 if (!netif_running(dev))
2659 return 0; 2658 return 0;
2660 2659
2660 netif_device_detach(dev);
2661
2661 bcm_sysport_netif_stop(dev); 2662 bcm_sysport_netif_stop(dev);
2662 2663
2663 phy_suspend(dev->phydev); 2664 phy_suspend(dev->phydev);
2664 2665
2665 netif_device_detach(dev);
2666
2667 /* Disable UniMAC RX */ 2666 /* Disable UniMAC RX */
2668 umac_enable_set(priv, CMD_RX_EN, 0); 2667 umac_enable_set(priv, CMD_RX_EN, 0);
2669 2668
@@ -2746,8 +2745,6 @@ static int __maybe_unused bcm_sysport_resume(struct device *d)
2746 goto out_free_rx_ring; 2745 goto out_free_rx_ring;
2747 } 2746 }
2748 2747
2749 netif_device_attach(dev);
2750
2751 /* RX pipe enable */ 2748 /* RX pipe enable */
2752 topctrl_writel(priv, 0, RX_FLUSH_CNTL); 2749 topctrl_writel(priv, 0, RX_FLUSH_CNTL);
2753 2750
@@ -2788,6 +2785,8 @@ static int __maybe_unused bcm_sysport_resume(struct device *d)
2788 2785
2789 bcm_sysport_netif_start(dev); 2786 bcm_sysport_netif_start(dev);
2790 2787
2788 netif_device_attach(dev);
2789
2791 return 0; 2790 return 0;
2792 2791
2793out_free_rx_ring: 2792out_free_rx_ring: