]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: stmmac: qcom-ethqos: move SerDes speed configuration
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 23 Feb 2026 09:34:56 +0000 (09:34 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 25 Feb 2026 01:43:23 +0000 (17:43 -0800)
Move the SerDes speed configuration to phylink's .mac_finish() stage
so that the SerDes is appropriately configured for the interface mode
prior to the link coming up.

Reviewed-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Tested-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1vuSLA-0000000AScc-3RFf@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c

index cd6d1660bdb2885b502176a38bb1c83a47980a02..153f6abc77cdcc55c6916b87c2515307d3a80c3b 100644 (file)
@@ -629,11 +629,6 @@ static void ethqos_configure_sgmii(struct qcom_ethqos *ethqos,
                break;
        }
 
-       if (interface == PHY_INTERFACE_MODE_SGMII)
-               ethqos_set_serdes_speed(ethqos, SPEED_1000);
-       else
-               ethqos_set_serdes_speed(ethqos, SPEED_2500);
-
        ethqos_pcs_set_inband(priv, interface == PHY_INTERFACE_MODE_SGMII);
 }
 
@@ -692,6 +687,11 @@ static int ethqos_mac_finish_serdes(struct net_device *ndev, void *priv,
 
        qcom_ethqos_set_sgmii_loopback(ethqos, false);
 
+       if (interface == PHY_INTERFACE_MODE_SGMII)
+               ethqos_set_serdes_speed(ethqos, SPEED_1000);
+       else if (interface == PHY_INTERFACE_MODE_2500BASEX)
+               ethqos_set_serdes_speed(ethqos, SPEED_2500);
+
        return 0;
 }