e1000e: WoL does not work on 82577/82578 with manageability enabled
Subsystems (2)
PATCH 1/2 e1000e: WoL does not work on 82577/82578 with manageability enabled
From: Bruce Allan <[email protected]>
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.
---
drivers/net/e1000e/netdev.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/net/e1000e/netdev.c +3 -3
@@ -4538,8 +4538,7 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)/* Allow time for pending master requests to run */ e1000e_disable_pcie_master (&adapter->hw); -if ((adapter->flags2 &FLAG2_HAS_PHY_WAKEUP ) && - !(hw->mac.ops.check_mng_mode (hw))) { +if (adapter->flags2 &FLAG2_HAS_PHY_WAKEUP ) {/* enable wakeup by the PHY */ retval =e1000_init_phy_wakeup (adapter, wufc);if (retval)
@@ -4557,7 +4556,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) *enable_wake = !!wufc;/* 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;if (adapter->hw.phy.type == e1000_phy_igp_3)
PATCH 2/2 e1000e: fix use of pci_enable_pcie_error_reporting
From: Xiaotian Feng <[email protected]>
commit 111b9dc5 introduces pcie aer support for e1000e, but it is not reasonable to disable it in e1000_remove but enable it in e1000_resume. This patch enables aer support in e1000_probe.
---
drivers/net/e1000e/netdev.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
drivers/net/e1000e/netdev.c +8 -8
@@ -4670,14 +4670,6 @@ static int e1000_resume(struct pci_dev *pdev)return err; } -/* AER (Advanced Error Reporting) hooks */ - err =pci_enable_pcie_error_reporting (pdev); -if (err) { -dev_err (&pdev->dev,"pci_enable_pcie_error_reporting failed " -"0x%x\n" , err); -/* non-fatal, continue */ - } -pci_set_master (pdev);pci_enable_wake (pdev, PCI_D3hot,0 );
@@ -4990,6 +4982,14 @@ static int __devinit e1000_probe(struct pci_dev *pdev,if (err) goto err_pci_reg; +/* AER (Advanced Error Reporting) hooks */ + err =pci_enable_pcie_error_reporting (pdev); +if (err) { +dev_err (&pdev->dev,"pci_enable_pcie_error_reporting failed " +"0x%x\n" , err); +/* non-fatal, continue */ + } +pci_set_master (pdev);/* PCI config space info */ err =pci_save_state (pdev);
Re: [net-2.6 PATCH 2/2] e1000e: fix use of pci_enable_pcie_error_reporting
From: Jeff Kirsher <[email protected]>
Date: Fri, 14 Aug 2009 17:35:52 -0700
Quoted 8 lines
From: Xiaotian Feng <[email protected]>
commit
111b9dc5introduces pcie aer support for e1000e, but it is not reasonable to disable it ine1000_removebut enable it ine1000_resume. This patch enables aer support ine1000_probe.Signed-off-by Xiaotian Feng <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.
From: Jeff Kirsher <[email protected]>
Date: Fri, 14 Aug 2009 17:35:33 -0700
Quoted 9 lines
From: Bruce Allan <[email protected]>
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 Bruce Allan <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.