diff options
author | Matthew Vick <matthew.vick@intel.com> | 2012-04-17 22:57:44 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-04-27 05:28:45 -0400 |
commit | a27416bbcada50173c2cf8c71d195380b9f06be2 (patch) | |
tree | af6f116543344734acd919357e609d1cb786783d | |
parent | bdc125f73f3c810754e858b942d54faf4ba6bffe (diff) |
igb: Force flow control off during reset when forcing speed.
During igb_reset(), we initiate a hardware reset which will clear our
flow control settings. For auto-negotiation, we re-negotiate them when
linking up again, but we need to force them off properly for the forced
speed case.
Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 28a37bb00c90..f40f3886eb26 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -1715,6 +1715,13 @@ void igb_reset(struct igb_adapter *adapter) | |||
1715 | if (hw->mac.ops.init_hw(hw)) | 1715 | if (hw->mac.ops.init_hw(hw)) |
1716 | dev_err(&pdev->dev, "Hardware Error\n"); | 1716 | dev_err(&pdev->dev, "Hardware Error\n"); |
1717 | 1717 | ||
1718 | /* | ||
1719 | * Flow control settings reset on hardware reset, so guarantee flow | ||
1720 | * control is off when forcing speed. | ||
1721 | */ | ||
1722 | if (!hw->mac.autoneg) | ||
1723 | igb_force_mac_fc(hw); | ||
1724 | |||
1718 | igb_init_dmac(adapter, pba); | 1725 | igb_init_dmac(adapter, pba); |
1719 | if (!netif_running(adapter->netdev)) | 1726 | if (!netif_running(adapter->netdev)) |
1720 | igb_power_down_link(adapter); | 1727 | igb_power_down_link(adapter); |