]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: stmmac: use phy_interface in stmmac_check_pcs_mode()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 17 Sep 2025 15:12:06 +0000 (16:12 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 20 Sep 2025 00:19:44 +0000 (17:19 -0700)
In the majority, if not all cases, mac_interface and phy_interface
are the same with the exception of some drivers that I have suggested
only use phy_interface and set mac_interface to PHY_INTERFACE_MODE_NA.

The only two that currently set mac_interface to PHY_INTERFACE_MODE_NA
are dwmac-loongson and dwmac-lpc18xx, neither of which use RGMII nor
SGMII.

In order to phase out the use of mac_interface, we need to have a path
for existing drivers so they can update to only using phy_interface
without causing regressions.

Therefore, in order to keep the "pcs" code working, we need to choose
the STMMAC integrated PCS mode based on phy_interface if mac_interface
is PHY_INTERFACE_MODE_NA.

This will allow more drivers to set mac_interface to
PHY_INTERFACE_MODE_NA without risking regressions.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1uytpG-00000006H29-1Ltk@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 8c8ca5999bd8ad369eafa0cd8448a15da55be86b..a23017a886f34ea5bc5414d5f721cd40ef0175c0 100644 (file)
@@ -1120,6 +1120,9 @@ static void stmmac_check_pcs_mode(struct stmmac_priv *priv)
 {
        int interface = priv->plat->mac_interface;
 
+       if (interface == PHY_INTERFACE_MODE_NA)
+               interface = priv->plat->phy_interface;
+
        if (priv->dma_cap.pcs) {
                if ((interface == PHY_INTERFACE_MODE_RGMII) ||
                    (interface == PHY_INTERFACE_MODE_RGMII_ID) ||