Commit beee8072 authored by Yanir Lubetkin's avatar Yanir Lubetkin Committed by Jeff Kirsher

e1000e: synchronization of MAC-PHY interface only on non- ME systems

On power up, the MAC - PHY interface needs to be set to PCIe, even if
cable is disconnected.  In ME systems, the ME handles this on exit from
Sx state. In non-ME, the driver handles it. Added a check for non-ME
system to the driver code that handles that.
Signed-off-by: default avatarYanir Lubetkin <yanirx.lubetkin@intel.com>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent beb0a152
...@@ -237,17 +237,19 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw) ...@@ -237,17 +237,19 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
if (ret_val) if (ret_val)
return false; return false;
out: out:
if ((hw->mac.type == e1000_pch_lpt) || if ((hw->mac.type == e1000_pch_lpt) || (hw->mac.type == e1000_pch_spt)) {
(hw->mac.type == e1000_pch_spt)) { /* Only unforce SMBus if ME is not active */
/* Unforce SMBus mode in PHY */ if (!(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) {
e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg); /* Unforce SMBus mode in PHY */
phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS; e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg);
e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg); phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS;
e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg);
/* Unforce SMBus mode in MAC */ /* Unforce SMBus mode in MAC */
mac_reg = er32(CTRL_EXT); mac_reg = er32(CTRL_EXT);
mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
ew32(CTRL_EXT, mac_reg); ew32(CTRL_EXT, mac_reg);
}
} }
return true; return true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment