Commit 92ed2eb7 authored by Andrew Lunn's avatar Andrew Lunn Committed by David S. Miller

net: phy: probe the PHY before determining the supported features

We will soon support asking the PHY at runtime to determine what
features it supports, rather than forcing it to be compile time.
But we should probe the PHY first. So probe the phy driver earlier.
Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 50684da7
...@@ -2220,6 +2220,18 @@ static int phy_probe(struct device *dev) ...@@ -2220,6 +2220,18 @@ static int phy_probe(struct device *dev)
mutex_lock(&phydev->lock); mutex_lock(&phydev->lock);
if (phydev->drv->probe) {
/* Deassert the reset signal */
phy_device_reset(phydev, 0);
err = phydev->drv->probe(phydev);
if (err) {
/* Assert the reset signal */
phy_device_reset(phydev, 1);
goto out;
}
}
/* Start out supporting everything. Eventually, /* Start out supporting everything. Eventually,
* a controller will attach, and may modify one * a controller will attach, and may modify one
* or both of these values * or both of these values
...@@ -2267,17 +2279,7 @@ static int phy_probe(struct device *dev) ...@@ -2267,17 +2279,7 @@ static int phy_probe(struct device *dev)
/* Set the state to READY by default */ /* Set the state to READY by default */
phydev->state = PHY_READY; phydev->state = PHY_READY;
if (phydev->drv->probe) { out:
/* Deassert the reset signal */
phy_device_reset(phydev, 0);
err = phydev->drv->probe(phydev);
if (err) {
/* Assert the reset signal */
phy_device_reset(phydev, 1);
}
}
mutex_unlock(&phydev->lock); mutex_unlock(&phydev->lock);
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment