Do not try to probe PHY devices if they are masked in phy_mask. This
way we won't try adding devices that are unlikely to be proper PHYs by
default. With this change it still remains possible to add such a
device explicitly either using "miitool" or calling
phy_device_create() explicilty.

Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com>
---
 drivers/net/phy/phy.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 19d458e07..b985b7567 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -234,6 +234,10 @@ struct phy_device *get_phy_device(struct mii_bus *bus, int 
addr)
        u32 phy_id = 0;
        int r;
 
+       /* skip masked out PHY addresses */
+       if (bus->phy_mask & BIT(addr))
+               return ERR_PTR(-ENODEV);
+
        r = get_phy_id(bus, addr, &phy_id);
        if (r)
                return ERR_PTR(r);
@@ -440,9 +444,6 @@ int phy_device_connect(struct eth_device *edev, struct 
mii_bus *bus, int addr,
        }
 
        for (i = 0; i < PHY_MAX_ADDR && !edev->phydev; i++) {
-               /* skip masked out PHY addresses */
-               if (bus->phy_mask & (1 << i))
-                       continue;
 
                phy = mdiobus_scan(bus, i);
                if (IS_ERR(phy))
-- 
2.17.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to