aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2.c
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2006-11-19 17:08:56 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:24:21 -0500
commita16dda0e67cea666fb7eb708ab1199892c4a1a13 (patch)
tree527897ab67c49755ae9a6f166e1b852abf8dd503 /drivers/net/bnx2.c
parentf8dd064ee1bd62ef2cdb398cb9cdc8a8f112cb28 (diff)
[BNX2]: Remove udelay() in copper PHY code.
Change a long udelay() in bnx2_setup_copper_phy() to msleep(). Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2.c')
-rw-r--r--drivers/net/bnx2.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index ea5daf6efa09..0a46b45f21dd 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -1159,7 +1159,6 @@ bnx2_setup_copper_phy(struct bnx2 *bp)
1159 } 1159 }
1160 if (new_bmcr != bmcr) { 1160 if (new_bmcr != bmcr) {
1161 u32 bmsr; 1161 u32 bmsr;
1162 int i = 0;
1163 1162
1164 bnx2_read_phy(bp, MII_BMSR, &bmsr); 1163 bnx2_read_phy(bp, MII_BMSR, &bmsr);
1165 bnx2_read_phy(bp, MII_BMSR, &bmsr); 1164 bnx2_read_phy(bp, MII_BMSR, &bmsr);
@@ -1167,12 +1166,12 @@ bnx2_setup_copper_phy(struct bnx2 *bp)
1167 if (bmsr & BMSR_LSTATUS) { 1166 if (bmsr & BMSR_LSTATUS) {
1168 /* Force link down */ 1167 /* Force link down */
1169 bnx2_write_phy(bp, MII_BMCR, BMCR_LOOPBACK); 1168 bnx2_write_phy(bp, MII_BMCR, BMCR_LOOPBACK);
1170 do { 1169 spin_unlock_bh(&bp->phy_lock);
1171 udelay(100); 1170 msleep(50);
1172 bnx2_read_phy(bp, MII_BMSR, &bmsr); 1171 spin_lock_bh(&bp->phy_lock);
1173 bnx2_read_phy(bp, MII_BMSR, &bmsr); 1172
1174 i++; 1173 bnx2_read_phy(bp, MII_BMSR, &bmsr);
1175 } while ((bmsr & BMSR_LSTATUS) && (i < 620)); 1174 bnx2_read_phy(bp, MII_BMSR, &bmsr);
1176 } 1175 }
1177 1176
1178 bnx2_write_phy(bp, MII_BMCR, new_bmcr); 1177 bnx2_write_phy(bp, MII_BMCR, new_bmcr);