diff options
author | David Graham <david.graham@intel.com> | 2008-02-14 13:17:12 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-02-15 10:52:11 -0500 |
commit | aa20c6c6d22efcca76c6225eb46f5903ce14c7c8 (patch) | |
tree | 097ac6c4f838710eebcd2a8f0586f0cedb164175 /drivers | |
parent | 41825d7158d4ca6488d562d73279392a886b9e7c (diff) |
igb: PCIe devices do not need to unset MANC_ARP_ENA
Users reported that ARP's were lost with igb. 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: David Graham <david.graham@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/igb/igb_main.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index d4eb8e2d8720..bff280eff5e3 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -606,9 +606,6 @@ static void igb_init_manageability(struct igb_adapter *adapter) | |||
606 | u32 manc2h = rd32(E1000_MANC2H); | 606 | u32 manc2h = rd32(E1000_MANC2H); |
607 | u32 manc = rd32(E1000_MANC); | 607 | u32 manc = rd32(E1000_MANC); |
608 | 608 | ||
609 | /* disable hardware interception of ARP */ | ||
610 | manc &= ~(E1000_MANC_ARP_EN); | ||
611 | |||
612 | /* enable receiving management packets to the host */ | 609 | /* enable receiving management packets to the host */ |
613 | /* this will probably generate destination unreachable messages | 610 | /* this will probably generate destination unreachable messages |
614 | * from the host OS, but the packets will be handled on SMBUS */ | 611 | * from the host OS, but the packets will be handled on SMBUS */ |
@@ -623,25 +620,6 @@ static void igb_init_manageability(struct igb_adapter *adapter) | |||
623 | } | 620 | } |
624 | } | 621 | } |
625 | 622 | ||
626 | static void igb_release_manageability(struct igb_adapter *adapter) | ||
627 | { | ||
628 | struct e1000_hw *hw = &adapter->hw; | ||
629 | |||
630 | if (adapter->en_mng_pt) { | ||
631 | u32 manc = rd32(E1000_MANC); | ||
632 | |||
633 | /* re-enable hardware interception of ARP */ | ||
634 | manc |= E1000_MANC_ARP_EN; | ||
635 | manc &= ~E1000_MANC_EN_MNG2HOST; | ||
636 | |||
637 | /* don't explicitly have to mess with MANC2H since | ||
638 | * MANC has an enable disable that gates MANC2H */ | ||
639 | |||
640 | /* XXX stop the hardware watchdog ? */ | ||
641 | wr32(E1000_MANC, manc); | ||
642 | } | ||
643 | } | ||
644 | |||
645 | /** | 623 | /** |
646 | * igb_configure - configure the hardware for RX and TX | 624 | * igb_configure - configure the hardware for RX and TX |
647 | * @adapter: private board structure | 625 | * @adapter: private board structure |
@@ -844,7 +822,6 @@ void igb_reset(struct igb_adapter *adapter) | |||
844 | 822 | ||
845 | igb_reset_adaptive(&adapter->hw); | 823 | igb_reset_adaptive(&adapter->hw); |
846 | adapter->hw.phy.ops.get_phy_info(&adapter->hw); | 824 | adapter->hw.phy.ops.get_phy_info(&adapter->hw); |
847 | igb_release_manageability(adapter); | ||
848 | } | 825 | } |
849 | 826 | ||
850 | /** | 827 | /** |
@@ -1178,9 +1155,6 @@ static void __devexit igb_remove(struct pci_dev *pdev) | |||
1178 | 1155 | ||
1179 | flush_scheduled_work(); | 1156 | flush_scheduled_work(); |
1180 | 1157 | ||
1181 | |||
1182 | igb_release_manageability(adapter); | ||
1183 | |||
1184 | /* Release control of h/w to f/w. If f/w is AMT enabled, this | 1158 | /* Release control of h/w to f/w. If f/w is AMT enabled, this |
1185 | * would have already happened in close and is redundant. */ | 1159 | * would have already happened in close and is redundant. */ |
1186 | igb_release_hw_control(adapter); | 1160 | igb_release_hw_control(adapter); |
@@ -3955,8 +3929,6 @@ static int igb_suspend(struct pci_dev *pdev, pm_message_t state) | |||
3955 | pci_enable_wake(pdev, PCI_D3cold, 0); | 3929 | pci_enable_wake(pdev, PCI_D3cold, 0); |
3956 | } | 3930 | } |
3957 | 3931 | ||
3958 | igb_release_manageability(adapter); | ||
3959 | |||
3960 | /* make sure adapter isn't asleep if manageability is enabled */ | 3932 | /* make sure adapter isn't asleep if manageability is enabled */ |
3961 | if (adapter->en_mng_pt) { | 3933 | if (adapter->en_mng_pt) { |
3962 | pci_enable_wake(pdev, PCI_D3hot, 1); | 3934 | pci_enable_wake(pdev, PCI_D3hot, 1); |