aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x_link.c
diff options
context:
space:
mode:
authorYaniv Rosner <yanivr@broadcom.com>2009-11-05 12:18:32 -0500
committerDavid S. Miller <davem@davemloft.net>2009-11-05 23:00:52 -0500
commit0c786f0246951fdd9b206249aab9601fb788f9e4 (patch)
tree3738650a16563d059a0a5a4bb7b5700a6e5016a3 /drivers/net/bnx2x_link.c
parent46d15cc7a09d6a7f96908b2cd812744c483893b4 (diff)
bnx2x: Fix register access timeout in 10M
In BCM8481 when link speed goes from 1G to 10M, driver received timeout since the MAC clock hasn't synced yet with the new speed, so it is required first to program the MAC with the new speed, and only then configure other parameters Signed-off-by: Yaniv Rosner <yanivr@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x_link.c')
-rw-r--r--drivers/net/bnx2x_link.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/bnx2x_link.c b/drivers/net/bnx2x_link.c
index d2c9e19bcd5a..41b9b7bd3d8e 100644
--- a/drivers/net/bnx2x_link.c
+++ b/drivers/net/bnx2x_link.c
@@ -6322,10 +6322,11 @@ static u8 bnx2x_update_link_up(struct link_params *params,
6322 bnx2x_bmac_enable(params, vars, 0); 6322 bnx2x_bmac_enable(params, vars, 0);
6323 bnx2x_set_led(params, LED_MODE_OPER, SPEED_10000); 6323 bnx2x_set_led(params, LED_MODE_OPER, SPEED_10000);
6324 } else { 6324 } else {
6325 bnx2x_emac_enable(params, vars, 0);
6326 rc = bnx2x_emac_program(params, vars->line_speed, 6325 rc = bnx2x_emac_program(params, vars->line_speed,
6327 vars->duplex); 6326 vars->duplex);
6328 6327
6328 bnx2x_emac_enable(params, vars, 0);
6329
6329 /* AN complete? */ 6330 /* AN complete? */
6330 if (gp_status & MDIO_AN_CL73_OR_37_COMPLETE) { 6331 if (gp_status & MDIO_AN_CL73_OR_37_COMPLETE) {
6331 if (!(vars->phy_flags & 6332 if (!(vars->phy_flags &