Skip to content

Commit

Permalink
e1000e: 82577/8 must acquire h/w semaphore before workaround
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Bruce Allan authored and Jeff Kirsher committed Dec 11, 2010
1 parent ed5c2b0 commit cbd006c
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/net/e1000e/ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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 */
Expand Down

0 comments on commit cbd006c

Please sign in to comment.