summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Lauss <manuel.lauss@gmail.com>2016-06-10 17:53:05 +0300
committerDavid S. Miller <davem@davemloft.net>2016-06-11 09:32:25 +0300
commita2f27217e4e60e663b5b971b0ccb287a9548b04e (patch)
tree58f27360566a7e8682e392252c1867eb5f8e5fdd
parenta4b42ab3205a28b24eb0d480935cf9fd1051a7f2 (diff)
downloadlinux-a2f27217e4e60e663b5b971b0ccb287a9548b04e.tar.xz
net: au1000_eth: fix PHY detection
Commit 7f854420fbfe9d49afe2ffb1df052cfe8e215541 ("phy: Add API for {un}registering an mdio device to a bus.") broke PHY detection on this driver with a copy-paste bug: The code is looking 32 times for a PHY at address 0. Fixes ethernet on AMD DB1100/DB1500/DB1550 boards which have their (autodetected) PHYs at address 31. Cc: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/amd/au1000_eth.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/ethernet/amd/au1000_eth.c b/drivers/net/ethernet/amd/au1000_eth.c
index e0fb0f1122db..d8c77e8e25ed 100644
--- a/drivers/net/ethernet/amd/au1000_eth.c
+++ b/drivers/net/ethernet/amd/au1000_eth.c
@@ -508,13 +508,12 @@ static int au1000_mii_probe(struct net_device *dev)
/* find the first (lowest address) PHY
* on the current MAC's MII bus
*/
- for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++)
- if (mdiobus_get_phy(aup->mii_bus, aup->phy_addr)) {
- phydev = mdiobus_get_phy(aup->mii_bus, aup->phy_addr);
- if (!aup->phy_search_highest_addr)
- /* break out with first one found */
- break;
- }
+ for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
+ phydev = mdiobus_get_phy(aup->mii_bus, phy_addr);
+ if (phydev && !aup->phy_search_highest_addr)
+ /* break out with first one found */
+ break;
+ }
if (aup->phy1_search_mac0) {
/* try harder to find a PHY */