lkml.org 
[lkml]   [2004]   [Nov]   [2]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Subject[PATCH]E1000 stop working after resume
FromLi Shaohua <>
DateTue, 02 Nov 2004 16:45:00 +0800
Hi,
Obviously pci_enable_device should be called after pci_restore_state. 

Shaohua


Signed-off-by: Li Shaohua <shaohua.li@intel.com>
---
 2.6-root/drivers/net/e1000/e1000_main.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)
diff -puN drivers/net/e1000/e1000_main.c~e1000-resume
drivers/net/e1000/e1000_main.c
--- 2.6/drivers/net/e1000/e1000_main.c~e1000-resume	2004-11-02
16:34:31.665692032 +0800
+++ 2.6-root/drivers/net/e1000/e1000_main.c	2004-11-02
16:35:18.095633608 +0800
@@ -2885,9 +2885,11 @@ e1000_resume(struct pci_dev *pdev)
 	struct e1000_adapter *adapter = netdev->priv;
 	uint32_t manc, ret;
 
-	ret = pci_enable_device(pdev);
 	pci_set_power_state(pdev, 0);
 	pci_restore_state(pdev);
+	ret = pci_enable_device(pdev);
+	if (pdev->is_busmaster)
+		pci_set_master(pdev);
 
 	pci_enable_wake(pdev, 3, 0);
 	pci_enable_wake(pdev, 4, 0); /* 4 == D3 cold */
_


---
 2.6-root/drivers/net/e1000/e1000_main.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)
diff -puN drivers/net/e1000/e1000_main.c~e1000-resume drivers/net/e1000/e1000_main.c
--- 2.6/drivers/net/e1000/e1000_main.c~e1000-resume	2004-11-02 16:34:31.665692032 +0800
+++ 2.6-root/drivers/net/e1000/e1000_main.c	2004-11-02 16:35:18.095633608 +0800
@@ -2885,9 +2885,11 @@ e1000_resume(struct pci_dev *pdev)
 	struct e1000_adapter *adapter = netdev->priv;
 	uint32_t manc, ret;
 
-	ret = pci_enable_device(pdev);
 	pci_set_power_state(pdev, 0);
 	pci_restore_state(pdev);
+	ret = pci_enable_device(pdev);
+	if (pdev->is_busmaster)
+		pci_set_master(pdev);
 
 	pci_enable_wake(pdev, 3, 0);
 	pci_enable_wake(pdev, 4, 0); /* 4 == D3 cold */
_
\
 
 \ /
  Last update: 2005-03-22 14:07    [from the cache]
©2003-2008