aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bnx2x_main.c')
-rw-r--r--drivers/net/bnx2x_main.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 6c67be679764..177cb467ba90 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -9691,8 +9691,15 @@ static void bnx2x_self_test(struct net_device *dev,
9691 etest->flags &= ~ETH_TEST_FL_OFFLINE; 9691 etest->flags &= ~ETH_TEST_FL_OFFLINE;
9692 9692
9693 if (etest->flags & ETH_TEST_FL_OFFLINE) { 9693 if (etest->flags & ETH_TEST_FL_OFFLINE) {
9694 int port = BP_PORT(bp);
9695 u32 val;
9694 u8 link_up; 9696 u8 link_up;
9695 9697
9698 /* save current value of input enable for TX port IF */
9699 val = REG_RD(bp, NIG_REG_EGRESS_UMP0_IN_EN + port*4);
9700 /* disable input for TX port IF */
9701 REG_WR(bp, NIG_REG_EGRESS_UMP0_IN_EN + port*4, 0);
9702
9696 link_up = bp->link_vars.link_up; 9703 link_up = bp->link_vars.link_up;
9697 bnx2x_nic_unload(bp, UNLOAD_NORMAL); 9704 bnx2x_nic_unload(bp, UNLOAD_NORMAL);
9698 bnx2x_nic_load(bp, LOAD_DIAG); 9705 bnx2x_nic_load(bp, LOAD_DIAG);
@@ -9712,6 +9719,10 @@ static void bnx2x_self_test(struct net_device *dev,
9712 etest->flags |= ETH_TEST_FL_FAILED; 9719 etest->flags |= ETH_TEST_FL_FAILED;
9713 9720
9714 bnx2x_nic_unload(bp, UNLOAD_NORMAL); 9721 bnx2x_nic_unload(bp, UNLOAD_NORMAL);
9722
9723 /* restore input for TX port IF */
9724 REG_WR(bp, NIG_REG_EGRESS_UMP0_IN_EN + port*4, val);
9725
9715 bnx2x_nic_load(bp, LOAD_NORMAL); 9726 bnx2x_nic_load(bp, LOAD_NORMAL);
9716 /* wait until link state is restored */ 9727 /* wait until link state is restored */
9717 bnx2x_wait_for_link(bp, link_up); 9728 bnx2x_wait_for_link(bp, link_up);