aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaniv Rosner <yanivr@broadcom.com>2009-11-05 19:18:32 +0200
committerDavid S. Miller <davem@davemloft.net>2009-11-05 20:00:52 -0800
commit0c786f0246951fdd9b206249aab9601fb788f9e4 (patch)
tree3738650a16563d059a0a5a4bb7b5700a6e5016a3
parent46d15cc7a09d6a7f96908b2cd812744c483893b4 (diff)
downloadvexpress-lsk-0c786f0246951fdd9b206249aab9601fb788f9e4.tar.gz
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>
-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 d2c9e19bcd5..41b9b7bd3d8 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,
bnx2x_bmac_enable(params, vars, 0);
bnx2x_set_led(params, LED_MODE_OPER, SPEED_10000);
} else {
- bnx2x_emac_enable(params, vars, 0);
rc = bnx2x_emac_program(params, vars->line_speed,
vars->duplex);
+ bnx2x_emac_enable(params, vars, 0);
+
/* AN complete? */
if (gp_status & MDIO_AN_CL73_OR_37_COMPLETE) {
if (!(vars->phy_flags &