rpms/kernel/FC-5 linux-2.6-net-forcedeth-suspend.patch, NONE, 1.1 kernel-2.6.spec, 1.2225, 1.2226

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sun Nov 5 20:57:09 UTC 2006


Author: davej

Update of /cvs/dist/rpms/kernel/FC-5
In directory cvs.devel.redhat.com:/tmp/cvs-serv10219

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-net-forcedeth-suspend.patch 
Log Message:
* Sun Nov  5 2006 Dave Jones <davej at redhat.com>
- Suspend/Resume fixes for forcedeth. (#187653)


linux-2.6-net-forcedeth-suspend.patch:
 forcedeth.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+)

--- NEW FILE linux-2.6-net-forcedeth-suspend.patch ---
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 7627a75..b269536 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -3176,6 +3176,50 @@ static void __devexit nv_remove(struct p
 	pci_set_drvdata(pci_dev, NULL);
 }
 
+
+#ifdef CONFIG_PM
+
+static int nv_suspend(struct pci_dev *pdev, pm_message_t state)
+{
+	struct net_device *dev = pci_get_drvdata(pdev);
+	struct fe_priv *np = netdev_priv(dev);
+
+	if (!netif_running(dev))
+		goto out;
+
+	netif_device_detach(dev);
+
+	// Gross.
+	nv_close(dev);
+
+	pci_save_state(pdev);
+	pci_enable_wake(pdev, pci_choose_state(pdev, state), np->wolenabled);
+	pci_set_power_state(pdev, pci_choose_state(pdev, state));
+out:
+	return 0;
+}
+
+static int nv_resume(struct pci_dev *pdev)
+{
+	struct net_device *dev = pci_get_drvdata(pdev);
+	int rc = 0;
+
+	if (!netif_running(dev))
+		goto out;
+
+	netif_device_attach(dev);
+
+	pci_set_power_state(pdev, PCI_D0);
+	pci_restore_state(pdev);
+	pci_enable_wake(pdev, PCI_D0, 0);
+
+	rc = nv_open(dev);
+out:
+	return rc;
+}
+
+#endif /* CONFIG_PM */
+
 static struct pci_device_id pci_tbl[] = {
 	{	/* nForce Ethernet Controller */
 		PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_1),
@@ -3245,6 +3289,10 @@ static struct pci_driver driver = {
 	.id_table = pci_tbl,
 	.probe = nv_probe,
 	.remove = __devexit_p(nv_remove),
+#ifdef CONFIG_PM
+	.suspend	= nv_suspend,
+	.resume		= nv_resume,
+#endif
 };
 
 


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-5/kernel-2.6.spec,v
retrieving revision 1.2225
retrieving revision 1.2226
diff -u -r1.2225 -r1.2226
--- kernel-2.6.spec	4 Nov 2006 21:39:18 -0000	1.2225
+++ kernel-2.6.spec	5 Nov 2006 20:57:06 -0000	1.2226
@@ -441,6 +441,7 @@
 Patch2400: linux-2.6-lockdep-fixes.patch
 
 # Net driver fixes.
+Patch2500: linux-2.6-net-forcedeth-suspend.patch
 Patch2501: linux-2.6-net-netpoll-fixes.patch
 
 #
@@ -1022,6 +1023,8 @@
 %patch2400 -p1
 
 # Network driver fixes.
+# suspend/resume for forcedeth
+%patch2500 -p1
 # Netpoll fixes.
 %patch2501 -p1
 
@@ -1627,6 +1630,9 @@
 %endif
 
 %changelog
+* Sun Nov  5 2006 Dave Jones <davej at redhat.com>
+- Suspend/Resume fixes for forcedeth. (#187653)
+
 * Sat Nov  4 2006 Dave Jones <davej at redhat.com>
 - 2.6.18.2
 




More information about the fedora-cvs-commits mailing list