Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbd006cb authored by Bruce Allan's avatar Bruce Allan Committed by Jeff Kirsher
Browse files

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: default avatarBruce Allan <bruce.w.allan@intel.com>
Tested-by: default avatarJeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent ed5c2b0b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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 */