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

Signed-off-by: Andrey Smirnov <[email protected]>
---
 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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to