提交 82776a4b 编写于 作者: B Bruce Allan 提交者: David S. Miller

e1000e: WoL does not work on 82577/82578 with manageability enabled

With manageability (Intel AMT) enabled via BIOS, PHY wakeup does not get
configured on newer parts which use PHY wakeup vs. MAC wakeup which causes
WoL to not work.  The driver should configure PHY wakeup whether or not
manageability is enabled.
Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 7fc1ece4
...@@ -4538,8 +4538,7 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) ...@@ -4538,8 +4538,7 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
/* Allow time for pending master requests to run */ /* Allow time for pending master requests to run */
e1000e_disable_pcie_master(&adapter->hw); e1000e_disable_pcie_master(&adapter->hw);
if ((adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) && if (adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) {
!(hw->mac.ops.check_mng_mode(hw))) {
/* enable wakeup by the PHY */ /* enable wakeup by the PHY */
retval = e1000_init_phy_wakeup(adapter, wufc); retval = e1000_init_phy_wakeup(adapter, wufc);
if (retval) if (retval)
...@@ -4557,7 +4556,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) ...@@ -4557,7 +4556,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
*enable_wake = !!wufc; *enable_wake = !!wufc;
/* make sure adapter isn't asleep if manageability is enabled */ /* make sure adapter isn't asleep if manageability is enabled */
if (adapter->flags & FLAG_MNG_PT_ENABLED) if ((adapter->flags & FLAG_MNG_PT_ENABLED) ||
(hw->mac.ops.check_mng_mode(hw)))
*enable_wake = true; *enable_wake = true;
if (adapter->hw.phy.type == e1000_phy_igp_3) if (adapter->hw.phy.type == e1000_phy_igp_3)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册