aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2010-11-24 01:01:30 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2010-12-11 01:13:11 -0500
commitcbd006cb7d4e7b76c6febf7f51e970bced132914 (patch)
tree4cd536bfbec78ea5efc7d67d2e328da367c0cf7b /drivers/net/e1000e
parented5c2b0b78e5467f7948bef92b21f3c76823f392 (diff)
e1000e: 82577/8 must acquire h/w semaphore before workaround
The workaround function e1000_configure_k1_pchlan() assumes the h/w semaphore is already acquired. This was originally missed when setting up the part for the ethtool loopback test. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r--drivers/net/e1000e/ethtool.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index 5c6bc6ac069c..c10dc694d733 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -1249,6 +1249,7 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
1249 u32 ctrl_reg = 0; 1249 u32 ctrl_reg = 0;
1250 u32 stat_reg = 0; 1250 u32 stat_reg = 0;
1251 u16 phy_reg = 0; 1251 u16 phy_reg = 0;
1252 s32 ret_val = 0;
1252 1253
1253 hw->mac.autoneg = 0; 1254 hw->mac.autoneg = 0;
1254 1255
@@ -1308,7 +1309,13 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
1308 case e1000_phy_82577: 1309 case e1000_phy_82577:
1309 case e1000_phy_82578: 1310 case e1000_phy_82578:
1310 /* Workaround: K1 must be disabled for stable 1Gbps operation */ 1311 /* Workaround: K1 must be disabled for stable 1Gbps operation */
1312 ret_val = hw->phy.ops.acquire(hw);
1313 if (ret_val) {
1314 e_err("Cannot setup 1Gbps loopback.\n");
1315 return ret_val;
1316 }
1311 e1000_configure_k1_ich8lan(hw, false); 1317 e1000_configure_k1_ich8lan(hw, false);
1318 hw->phy.ops.release(hw);
1312 break; 1319 break;
1313 case e1000_phy_82579: 1320 case e1000_phy_82579:
1314 /* Disable PHY energy detect power down */ 1321 /* Disable PHY energy detect power down */