aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/phy/phy_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/phy/phy_device.c')
-rw-r--r--drivers/net/phy/phy_device.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index ac23322a32e1..9e4ba8e80a18 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -535,8 +535,17 @@ static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
535 535
536 /* Grab the bits from PHYIR1, and put them in the upper half */ 536 /* Grab the bits from PHYIR1, and put them in the upper half */
537 phy_reg = mdiobus_read(bus, addr, MII_PHYSID1); 537 phy_reg = mdiobus_read(bus, addr, MII_PHYSID1);
538 if (phy_reg < 0) 538 if (phy_reg < 0) {
539 /* if there is no device, return without an error so scanning
540 * the bus works properly
541 */
542 if (phy_reg == -EIO || phy_reg == -ENODEV) {
543 *phy_id = 0xffffffff;
544 return 0;
545 }
546
539 return -EIO; 547 return -EIO;
548 }
540 549
541 *phy_id = (phy_reg & 0xffff) << 16; 550 *phy_id = (phy_reg & 0xffff) << 16;
542 551