From: Mikhail Kshevetskiy Date: Sun, 15 Mar 2026 07:47:55 +0000 (+0300) Subject: net: airoha: probe airoha switch mdio on airoha_eth probing X-Git-Tag: v2026.07-rc1~21^2~32^2~17 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=a05c0d17321e09353bb4a5b993f8d4579f1696c8;p=thirdparty%2Fu-boot.git net: airoha: probe airoha switch mdio on airoha_eth probing Airoha switch mdio maybe used not only by GDM1, but also by other GDM ports (ex: as21xxx phy connected to GDM2 port). So it's better probe airoha switch mdio a bit early in the airoha_eth_probe() code. Also remove useless eth_phy_set_mdio_bus() call and related code. Signed-off-by: Mikhail Kshevetskiy --- diff --git a/drivers/net/airoha_eth.c b/drivers/net/airoha_eth.c index f60405392b6..84ee9b2ad76 100644 --- a/drivers/net/airoha_eth.c +++ b/drivers/net/airoha_eth.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -909,6 +908,11 @@ static int airoha_eth_probe(struct udevice *dev) if (ret) return ret; + if (eth->switch_mdio_dev) { + if (!device_probe(eth->switch_mdio_dev)) + debug("Warning: failed to probe airoha switch mdio\n"); + } + ofnode_for_each_subnode(node, dev_ofnode(dev)) { if (!ofnode_device_is_compatible(node, "airoha,eth-mac")) continue; @@ -935,8 +939,6 @@ static int airoha_eth_port_probe(struct udevice *dev) { struct airoha_eth *eth = (void *)dev_get_driver_data(dev); struct airoha_gdm_port *port = dev_get_priv(dev); - struct mdio_perdev_priv *pdata; - struct mii_dev *mdio_bus; int ret; port->qdma = ð->qdma[0]; @@ -945,7 +947,6 @@ static int airoha_eth_port_probe(struct udevice *dev) if (ret) return ret; - mdio_bus = NULL; if (port->id > 1) { #if defined(CONFIG_PCS_AIROHA) ret = airoha_pcs_init(dev); @@ -953,24 +954,11 @@ static int airoha_eth_port_probe(struct udevice *dev) return ret; port->phydev = dm_eth_phy_connect(dev); - if (port->phydev) - mdio_bus = port->phydev->bus; #else return -EINVAL; #endif - } else { - if (eth->switch_mdio_dev && - !device_probe(eth->switch_mdio_dev)) { - pdata = dev_get_uclass_priv(eth->switch_mdio_dev); - mdio_bus = pdata->mii_bus; - } } -#ifdef CONFIG_DM_ETH_PHY - if (!IS_ERR_OR_NULL(mdio_bus)) - eth_phy_set_mdio_bus(dev, mdio_bus); -#endif - return 0; }