diff options
author | Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com> | 2009-06-04 07:11:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-07 08:20:19 -0400 |
commit | 620fa036b2459ca9acf7484c8074147f0dda68da (patch) | |
tree | 22ed490ea8f6c711c6c6e6779583dee475cc9729 /drivers/net/ixgbe/ixgbe_82599.c | |
parent | 50ac58ba1d707df33f0c398ae700214e49bf918f (diff) |
ixgbe: Fix 82599 adapter link flickering issues
Fix autoneg restart issues in flow control path which might create
endless link flickering due to known timing issues with 82599
adapters.
Signed-off-by: Mallikarjuna R Chilakala <mallikarjuna.chilakakla@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_82599.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_82599.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/ixgbe/ixgbe_82599.c index 84b83f7b473f..4d83e5916593 100644 --- a/drivers/net/ixgbe/ixgbe_82599.c +++ b/drivers/net/ixgbe/ixgbe_82599.c | |||
@@ -413,9 +413,6 @@ s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw) | |||
413 | } | 413 | } |
414 | } | 414 | } |
415 | 415 | ||
416 | /* Set up flow control */ | ||
417 | status = ixgbe_setup_fc_generic(hw, 0); | ||
418 | |||
419 | /* Add delay to filter out noises during initial link setup */ | 416 | /* Add delay to filter out noises during initial link setup */ |
420 | msleep(50); | 417 | msleep(50); |
421 | 418 | ||
@@ -641,6 +638,11 @@ s32 ixgbe_check_mac_link_82599(struct ixgbe_hw *hw, ixgbe_link_speed *speed, | |||
641 | else | 638 | else |
642 | *speed = IXGBE_LINK_SPEED_100_FULL; | 639 | *speed = IXGBE_LINK_SPEED_100_FULL; |
643 | 640 | ||
641 | /* if link is down, zero out the current_mode */ | ||
642 | if (*link_up == false) { | ||
643 | hw->fc.current_mode = ixgbe_fc_none; | ||
644 | hw->fc.fc_was_autonegged = false; | ||
645 | } | ||
644 | 646 | ||
645 | return 0; | 647 | return 0; |
646 | } | 648 | } |
@@ -747,9 +749,6 @@ s32 ixgbe_setup_mac_link_speed_82599(struct ixgbe_hw *hw, | |||
747 | } | 749 | } |
748 | } | 750 | } |
749 | 751 | ||
750 | /* Set up flow control */ | ||
751 | status = ixgbe_setup_fc_generic(hw, 0); | ||
752 | |||
753 | /* Add delay to filter out noises during initial link setup */ | 752 | /* Add delay to filter out noises during initial link setup */ |
754 | msleep(50); | 753 | msleep(50); |
755 | } | 754 | } |
@@ -1509,7 +1508,7 @@ static struct ixgbe_mac_operations mac_ops_82599 = { | |||
1509 | .disable_mc = &ixgbe_disable_mc_generic, | 1508 | .disable_mc = &ixgbe_disable_mc_generic, |
1510 | .clear_vfta = &ixgbe_clear_vfta_82599, | 1509 | .clear_vfta = &ixgbe_clear_vfta_82599, |
1511 | .set_vfta = &ixgbe_set_vfta_82599, | 1510 | .set_vfta = &ixgbe_set_vfta_82599, |
1512 | .setup_fc = &ixgbe_setup_fc_generic, | 1511 | .fc_enable = &ixgbe_fc_enable_generic, |
1513 | .init_uta_tables = &ixgbe_init_uta_tables_82599, | 1512 | .init_uta_tables = &ixgbe_init_uta_tables_82599, |
1514 | .setup_sfp = &ixgbe_setup_sfp_modules_82599, | 1513 | .setup_sfp = &ixgbe_setup_sfp_modules_82599, |
1515 | }; | 1514 | }; |