diff options
author | Michael Chan <mchan@broadcom.com> | 2013-04-09 04:48:05 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-09 15:14:14 -0400 |
commit | 3310e248c863579518b181d242de01def6b86e75 (patch) | |
tree | cf24632475288dec61d98d3573e78e8b33a82ded /drivers/net/ethernet/broadcom/tg3.c | |
parent | ce20f1613b1a2d55257f37c8bd26b47ef31f4cba (diff) |
tg3: Add tg3_clear_mac_status() common function
Refactor for use in the next patch that adds sgmii phy support.
Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/tg3.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/tg3.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index a7449984c7a6..568dd07fc052 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
@@ -4428,6 +4428,18 @@ static bool tg3_test_and_report_link_chg(struct tg3 *tp, int curr_link_up) | |||
4428 | return false; | 4428 | return false; |
4429 | } | 4429 | } |
4430 | 4430 | ||
4431 | static void tg3_clear_mac_status(struct tg3 *tp) | ||
4432 | { | ||
4433 | tw32(MAC_EVENT, 0); | ||
4434 | |||
4435 | tw32_f(MAC_STATUS, | ||
4436 | MAC_STATUS_SYNC_CHANGED | | ||
4437 | MAC_STATUS_CFG_CHANGED | | ||
4438 | MAC_STATUS_MI_COMPLETION | | ||
4439 | MAC_STATUS_LNKSTATE_CHANGED); | ||
4440 | udelay(40); | ||
4441 | } | ||
4442 | |||
4431 | static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) | 4443 | static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) |
4432 | { | 4444 | { |
4433 | int current_link_up; | 4445 | int current_link_up; |
@@ -4437,14 +4449,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) | |||
4437 | u8 current_duplex; | 4449 | u8 current_duplex; |
4438 | int i, err; | 4450 | int i, err; |
4439 | 4451 | ||
4440 | tw32(MAC_EVENT, 0); | 4452 | tg3_clear_mac_status(tp); |
4441 | |||
4442 | tw32_f(MAC_STATUS, | ||
4443 | (MAC_STATUS_SYNC_CHANGED | | ||
4444 | MAC_STATUS_CFG_CHANGED | | ||
4445 | MAC_STATUS_MI_COMPLETION | | ||
4446 | MAC_STATUS_LNKSTATE_CHANGED)); | ||
4447 | udelay(40); | ||
4448 | 4453 | ||
4449 | if ((tp->mi_mode & MAC_MI_MODE_AUTO_POLL) != 0) { | 4454 | if ((tp->mi_mode & MAC_MI_MODE_AUTO_POLL) != 0) { |
4450 | tw32_f(MAC_MI_MODE, | 4455 | tw32_f(MAC_MI_MODE, |
@@ -5470,14 +5475,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset) | |||
5470 | tw32_f(MAC_MODE, tp->mac_mode); | 5475 | tw32_f(MAC_MODE, tp->mac_mode); |
5471 | udelay(40); | 5476 | udelay(40); |
5472 | 5477 | ||
5473 | tw32(MAC_EVENT, 0); | 5478 | tg3_clear_mac_status(tp); |
5474 | |||
5475 | tw32_f(MAC_STATUS, | ||
5476 | (MAC_STATUS_SYNC_CHANGED | | ||
5477 | MAC_STATUS_CFG_CHANGED | | ||
5478 | MAC_STATUS_MI_COMPLETION | | ||
5479 | MAC_STATUS_LNKSTATE_CHANGED)); | ||
5480 | udelay(40); | ||
5481 | 5479 | ||
5482 | if (force_reset) | 5480 | if (force_reset) |
5483 | tg3_phy_reset(tp); | 5481 | tg3_phy_reset(tp); |