From: Anton Vorontsov Date: Fri, 14 Mar 2008 20:20:30 +0000 (+0300) Subject: tsec: fix link detection for the RTL8211B PHY X-Git-Tag: v1.3.3-rc1~145 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c7604783b236e368f225efb7b3efb418fe20b404;p=oweals%2Fu-boot.git tsec: fix link detection for the RTL8211B PHY RTL8211B sets link state register after autonegotiation complete, so with bootdelay=0 RTL8211B will report lack of the link. To fix this, we should wait for aneg to complete, even if the link is currently down. Signed-off-by: Anton Vorontsov Signed-off-by: Kim Phillips --- diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index e91d9eadc1..431a8d2f23 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -583,10 +583,11 @@ uint mii_parse_RTL8211B_sr(uint mii_reg, struct tsec_private * priv) uint speed; mii_reg = read_phy_reg(priv, MIIM_RTL8211B_PHY_STATUS); - if ((mii_reg & MIIM_RTL8211B_PHYSTAT_LINK) && - !(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) { + if (!(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) { int i = 0; + /* in case of timeout ->link is cleared */ + priv->link = 1; puts("Waiting for PHY realtime link"); while (!(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) { /* Timeout reached ? */