net: dpaa2-mac: absorb phylink_start() call into dpaa2_mac_start()
authorVladimir Oltean <vladimir.oltean@nxp.com>
Tue, 29 Nov 2022 14:12:12 +0000 (16:12 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 1 Dec 2022 12:40:21 +0000 (13:40 +0100)
The phylink handling is intended to be hidden inside the dpaa2_mac
object. Move the phylink_start() call into dpaa2_mac_start(), and
phylink_stop() into dpaa2_mac_stop().

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c

index 515fcd18ed7221131e9f9c6d1d43a1aa8a79bfbd..8896a3198bd2014e06c3afce839c70726d913bee 100644 (file)
@@ -2201,10 +2201,8 @@ static int dpaa2_eth_open(struct net_device *net_dev)
                goto enable_err;
        }
 
-       if (dpaa2_eth_is_type_phy(priv)) {
+       if (dpaa2_eth_is_type_phy(priv))
                dpaa2_mac_start(priv->mac);
-               phylink_start(priv->mac->phylink);
-       }
 
        return 0;
 
@@ -2278,7 +2276,6 @@ static int dpaa2_eth_stop(struct net_device *net_dev)
        int retries = 10;
 
        if (dpaa2_eth_is_type_phy(priv)) {
-               phylink_stop(priv->mac->phylink);
                dpaa2_mac_stop(priv->mac);
        } else {
                netif_tx_stop_all_queues(net_dev);
index 51c9da8e1be22d0550d51b3e450e1dd0d4331456..38e88c35488504b5a12c33244bc136202b3eee4d 100644 (file)
@@ -338,12 +338,20 @@ static void dpaa2_mac_set_supported_interfaces(struct dpaa2_mac *mac)
 
 void dpaa2_mac_start(struct dpaa2_mac *mac)
 {
+       ASSERT_RTNL();
+
        if (mac->serdes_phy)
                phy_power_on(mac->serdes_phy);
+
+       phylink_start(mac->phylink);
 }
 
 void dpaa2_mac_stop(struct dpaa2_mac *mac)
 {
+       ASSERT_RTNL();
+
+       phylink_stop(mac->phylink);
+
        if (mac->serdes_phy)
                phy_power_off(mac->serdes_phy);
 }
index 14f739e04a3cd0db1e9bafc83c59f08dfda2a895..42d3290ccd8b0b50e850835cba08396e29faf8fe 100644 (file)
@@ -702,10 +702,8 @@ static int dpaa2_switch_port_open(struct net_device *netdev)
 
        dpaa2_switch_enable_ctrl_if_napi(ethsw);
 
-       if (dpaa2_switch_port_is_type_phy(port_priv)) {
+       if (dpaa2_switch_port_is_type_phy(port_priv))
                dpaa2_mac_start(port_priv->mac);
-               phylink_start(port_priv->mac->phylink);
-       }
 
        return 0;
 }
@@ -717,7 +715,6 @@ static int dpaa2_switch_port_stop(struct net_device *netdev)
        int err;
 
        if (dpaa2_switch_port_is_type_phy(port_priv)) {
-               phylink_stop(port_priv->mac->phylink);
                dpaa2_mac_stop(port_priv->mac);
        } else {
                netif_tx_stop_all_queues(netdev);