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>
This commit is contained in:
parent
ed5c2b0b78
commit
cbd006cb7d
1 changed files with 7 additions and 0 deletions
|
@ -1249,6 +1249,7 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
|
|||
u32 ctrl_reg = 0;
|
||||
u32 stat_reg = 0;
|
||||
u16 phy_reg = 0;
|
||||
s32 ret_val = 0;
|
||||
|
||||
hw->mac.autoneg = 0;
|
||||
|
||||
|
@ -1308,7 +1309,13 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
|
|||
case e1000_phy_82577:
|
||||
case e1000_phy_82578:
|
||||
/* Workaround: K1 must be disabled for stable 1Gbps operation */
|
||||
ret_val = hw->phy.ops.acquire(hw);
|
||||
if (ret_val) {
|
||||
e_err("Cannot setup 1Gbps loopback.\n");
|
||||
return ret_val;
|
||||
}
|
||||
e1000_configure_k1_ich8lan(hw, false);
|
||||
hw->phy.ops.release(hw);
|
||||
break;
|
||||
case e1000_phy_82579:
|
||||
/* Disable PHY energy detect power down */
|
||||
|
|
Reference in a new issue