ramips: ignore already handled ethernet phys
[openwrt/staging/lynxis.git] / target / linux / ramips / files-4.14 / drivers / net / ethernet / mediatek / mdio.c
index a1c115687ec56fb9c4c71347db842f440c824d7a..2e2da6021fe18caef950a461807af597b854e87c 100644 (file)
@@ -127,8 +127,14 @@ static int fe_phy_connect(struct fe_priv *priv)
                                priv->phy_dev = priv->phy->phy[i];
                                priv->phy_flags = FE_PHY_FLAG_PORT;
                        }
-               } else if (priv->mii_bus && mdiobus_get_phy(priv->mii_bus, i)) {
-                       phy_init(priv, mdiobus_get_phy(priv->mii_bus, i));
+               } else if (priv->mii_bus) {
+                       struct phy_device *phydev;
+
+                       phydev = mdiobus_get_phy(priv->mii_bus, i);
+                       if (!phydev || phydev->attached_dev)
+                               continue;
+
+                       phy_init(priv, phydev);
                        if (!priv->phy_dev) {
                                priv->phy_dev = mdiobus_get_phy(priv->mii_bus, i);
                                priv->phy_flags = FE_PHY_FLAG_ATTACH;