Commit a77929a2 authored by Grant Grundler's avatar Grant Grundler Committed by David S. Miller

net-next:asix:poll in asix_get_phyid in case phy not ready

Sometimes the phy isn't ready after reset...poll and pray it will be soon.
Signed-off-by: default avatarFreddy Xin <freddy@asix.com.tw>
Signed-off-by: default avatarGrant Grundler <grundler@chromium.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3486140e
...@@ -652,9 +652,17 @@ static u32 asix_get_phyid(struct usbnet *dev) ...@@ -652,9 +652,17 @@ static u32 asix_get_phyid(struct usbnet *dev)
{ {
int phy_reg; int phy_reg;
u32 phy_id; u32 phy_id;
int i;
/* Poll for the rare case the FW or phy isn't ready yet. */
for (i = 0; i < 100; i++) {
phy_reg = asix_mdio_read(dev->net, dev->mii.phy_id, MII_PHYSID1); phy_reg = asix_mdio_read(dev->net, dev->mii.phy_id, MII_PHYSID1);
if (phy_reg < 0) if (phy_reg != 0 && phy_reg != 0xFFFF)
break;
mdelay(1);
}
if (phy_reg <= 0 || phy_reg == 0xFFFF)
return 0; return 0;
phy_id = (phy_reg & 0xffff) << 16; phy_id = (phy_reg & 0xffff) << 16;
......
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