Commit e8ef7f29 authored by David Graham's avatar David Graham Committed by Jeff Garzik

e1000e: PCIe devices do not need to unset MANC_ARP_ENA

Users reported that ARP's were lost with e1000e. The problem
is fixed by not enabling this manageability configuration
bit.

None of the release_manageability code is actually needed as the
normal device reset during a shutdown returns everthing to
the right condition automatically.
Signed-off-by: default avatarDavid Graham <david.graham@intel.com>
Signed-off-by: default avatarAuke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent aa20c6c6
...@@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct e1000_adapter *adapter) ...@@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct e1000_adapter *adapter)
} }
} }
static void e1000_release_manageability(struct e1000_adapter *adapter)
{
if (adapter->flags & FLAG_MNG_PT_ENABLED) {
struct e1000_hw *hw = &adapter->hw;
u32 manc = er32(MANC);
/* re-enable hardware interception of ARP */
manc |= E1000_MANC_ARP_EN;
manc &= ~E1000_MANC_EN_MNG2HOST;
/* don't explicitly have to mess with MANC2H since
* MANC has an enable disable that gates MANC2H */
ew32(MANC, manc);
}
}
/** /**
* @e1000_alloc_ring - allocate memory for a ring structure * @e1000_alloc_ring - allocate memory for a ring structure
**/ **/
...@@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter *adapter) ...@@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter *adapter)
manc = er32(MANC); manc = er32(MANC);
/* disable hardware interception of ARP */
manc &= ~(E1000_MANC_ARP_EN);
/* enable receiving management packets to the host. this will probably /* enable receiving management packets to the host. this will probably
* generate destination unreachable messages from the host OS, but * generate destination unreachable messages from the host OS, but
* the packets will be handled on SMBUS */ * the packets will be handled on SMBUS */
...@@ -2140,8 +2120,6 @@ void e1000e_reset(struct e1000_adapter *adapter) ...@@ -2140,8 +2120,6 @@ void e1000e_reset(struct e1000_adapter *adapter)
phy_data &= ~IGP02E1000_PM_SPD; phy_data &= ~IGP02E1000_PM_SPD;
e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, phy_data); e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, phy_data);
} }
e1000_release_manageability(adapter);
} }
int e1000e_up(struct e1000_adapter *adapter) int e1000e_up(struct e1000_adapter *adapter)
...@@ -3487,8 +3465,6 @@ static int e1000_suspend(struct pci_dev *pdev, pm_message_t state) ...@@ -3487,8 +3465,6 @@ static int e1000_suspend(struct pci_dev *pdev, pm_message_t state)
pci_enable_wake(pdev, PCI_D3cold, 0); pci_enable_wake(pdev, PCI_D3cold, 0);
} }
e1000_release_manageability(adapter);
/* 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) {
pci_enable_wake(pdev, PCI_D3hot, 1); pci_enable_wake(pdev, PCI_D3hot, 1);
...@@ -4054,8 +4030,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev) ...@@ -4054,8 +4030,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)
flush_scheduled_work(); flush_scheduled_work();
e1000_release_manageability(adapter);
/* Release control of h/w to f/w. If f/w is AMT enabled, this /* Release control of h/w to f/w. If f/w is AMT enabled, this
* would have already happened in close and is redundant. */ * would have already happened in close and is redundant. */
e1000_release_hw_control(adapter); e1000_release_hw_control(adapter);
......
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