]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: ethernet: mtk_eth_soc: fix supported_interface set after phylink_create
authorChristian Marangi <ansuelsmth@gmail.com>
Mon, 15 Jun 2026 15:11:00 +0000 (17:11 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 17 Jun 2026 23:05:56 +0000 (16:05 -0700)
Everything configured in phylink_config it's assumed to be set before
calling phylink_create() to permit correct parsing of all the different
modes and capabilities.

Commit 51cf06ddafc9 ("net: ethernet: mtk_eth_soc: add support for MT7988
internal 2.5G PHY") while introducing support for 2.5G phy for MT7988,
probably due to an auto-rebase, placed the configuration of the INTERNAL
interface mode for the supported_interfaces for phylink_config right after
phylink_create() introducing a possible problem with supported interfaces
parsing.

While this doesn't currently create any problem/bug, move setting this bit
before phylink_create() to prevent any possible regression in future code
change in phylink core.

Fixes: 51cf06ddafc9 ("net: ethernet: mtk_eth_soc: add support for MT7988 internal 2.5G PHY")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/20260615151106.15438-1-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mediatek/mtk_eth_soc.c

index 7d771168b99011a1b0c7f82954523378c413278d..5d291e50a47bb9d36013cf5d43124b1f718590fb 100644 (file)
@@ -4960,6 +4960,11 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
                mac_ops = &rt5350_phylink_ops;
 
+       if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_2P5GPHY) &&
+           id == MTK_GMAC2_ID)
+               __set_bit(PHY_INTERFACE_MODE_INTERNAL,
+                         mac->phylink_config.supported_interfaces);
+
        phylink = phylink_create(&mac->phylink_config,
                                 of_fwnode_handle(mac->of_node),
                                 phy_mode, mac_ops);
@@ -4970,11 +4975,6 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
 
        mac->phylink = phylink;
 
-       if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_2P5GPHY) &&
-           id == MTK_GMAC2_ID)
-               __set_bit(PHY_INTERFACE_MODE_INTERNAL,
-                         mac->phylink_config.supported_interfaces);
-
        SET_NETDEV_DEV(eth->netdev[id], eth->dev);
        eth->netdev[id]->watchdog_timeo = 5 * HZ;
        eth->netdev[id]->netdev_ops = &mtk_netdev_ops;