aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/igb/e1000_82575.c
diff options
context:
space:
mode:
authorCarolyn Wyborny <carolyn.wyborny@intel.com>2012-11-12 23:03:20 -0500
committerDavid S. Miller <davem@davemloft.net>2012-11-13 14:18:14 -0500
commit867eb39e8b023b25073ad9d47ff3230b4f65990b (patch)
treef557d67e2148d96e82edcd5c29a0f72c065a3e7b /drivers/net/ethernet/intel/igb/e1000_82575.c
parent85624caff9decc8174f286e12e9d0038d9a6cced (diff)
igb: Clear Go Link Disconnect for 82580 and later devices
Customers are requesting that the hw prevents PHY from establishing link until the driver loads. This patch clears the Go Link Disconnect bit which provides the requested behavior on parts 82580 and later. Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com> Tested-by: Aaron Brown <aaron.f.brown@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/ethernet/intel/igb/e1000_82575.c')
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_82575.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c
index deb05970b9f1..8c12dbd0d6ce 100644
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
@@ -1278,12 +1278,20 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw)
1278{ 1278{
1279 u32 ctrl; 1279 u32 ctrl;
1280 s32 ret_val; 1280 s32 ret_val;
1281 u32 phpm_reg;
1281 1282
1282 ctrl = rd32(E1000_CTRL); 1283 ctrl = rd32(E1000_CTRL);
1283 ctrl |= E1000_CTRL_SLU; 1284 ctrl |= E1000_CTRL_SLU;
1284 ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); 1285 ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX);
1285 wr32(E1000_CTRL, ctrl); 1286 wr32(E1000_CTRL, ctrl);
1286 1287
1288 /* Clear Go Link Disconnect bit */
1289 if (hw->mac.type >= e1000_82580) {
1290 phpm_reg = rd32(E1000_82580_PHY_POWER_MGMT);
1291 phpm_reg &= ~E1000_82580_PM_GO_LINKD;
1292 wr32(E1000_82580_PHY_POWER_MGMT, phpm_reg);
1293 }
1294
1287 ret_val = igb_setup_serdes_link_82575(hw); 1295 ret_val = igb_setup_serdes_link_82575(hw);
1288 if (ret_val) 1296 if (ret_val)
1289 goto out; 1297 goto out;