Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 154661

Summary: gentoo-sources-2.6.18-r2: suspend/resume broken for e1000
Product: Gentoo Linux Reporter: Toralf Förster <toralf>
Component: [OLD] Core systemAssignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers <kernel>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: High    
Version: 2006.1   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Toralf Förster gentoo-dev 2006-11-10 04:42:48 UTC
The (back ported) patch below is neccessary for ThinkPad T41 with e1000 b/c of a broken suspend/resume, see https://bugs.gentoo.org/show_bug.cgi?id=146005 and http://bugzilla.kernel.org/show_bug.cgi?id=7207 for details.

Tested succesfully at my machine.

tfoerste@n22 /usr/src/linux $ diff -u drivers/net/e1000/e1000_main.c drivers/net/e1000/e1000_main.c_orig
--- drivers/net/e1000/e1000_main.c      2006-11-10 12:02:15.000000000 +0100
+++ drivers/net/e1000/e1000_main.c_orig 2006-11-10 11:58:18.000000000 +0100
@@ -4683,9 +4683,6 @@
        if (adapter->hw.phy_type == e1000_phy_igp_3)
                e1000_phy_powerdown_workaround(&adapter->hw);

-       if (netif_running(netdev))
-               e1000_free_irq(adapter);
-
        /* Release control of h/w to f/w.  If f/w is AMT enabled, this
         * would have already happened in close and is redundant. */
        e1000_release_hw_control(adapter);
@@ -4703,7 +4700,7 @@
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
        struct e1000_adapter *adapter = netdev_priv(netdev);
-       uint32_t manc, ret_val, err;
+       uint32_t manc, ret_val;

        pci_set_power_state(pdev, PCI_D0);
        e1000_pci_restore_state(adapter);
@@ -4713,10 +4710,6 @@
        pci_enable_wake(pdev, PCI_D3hot, 0);
        pci_enable_wake(pdev, PCI_D3cold, 0);

-       if (netif_running(netdev) && (err = e1000_request_irq(adapter)))
-               return err;
-
-       e1000_power_up_phy(adapter);
        e1000_reset(adapter);
        E1000_WRITE_REG(&adapter->hw, WUS, ~0);
Comment 1 Daniel Drake (RETIRED) gentoo-dev 2006-11-10 06:07:44 UTC
Thanks for letting us know, but no need for a 2nd bug :)

*** This bug has been marked as a duplicate of 146005 ***