svn commit: r215719 - head/sys/dev/pci

Jung-uk Kim jkim at FreeBSD.org
Mon Nov 22 21:58:00 UTC 2010


Author: jkim
Date: Mon Nov 22 21:58:00 2010
New Revision: 215719
URL: http://svn.freebsd.org/changeset/base/215719

Log:
  Resume critical PCI devices (and their children) first, then everything else
  later.  This give us better chance to catch device driver problems.

Modified:
  head/sys/dev/pci/pci.c

Modified: head/sys/dev/pci/pci.c
==============================================================================
--- head/sys/dev/pci/pci.c	Mon Nov 22 21:43:45 2010	(r215718)
+++ head/sys/dev/pci/pci.c	Mon Nov 22 21:58:00 2010	(r215719)
@@ -3022,8 +3022,35 @@ pci_resume(device_t dev)
 		if (!device_is_attached(child))
 			pci_cfg_save(child, dinfo, 1);
 	}
+
+	/*
+	 * Resume critical devices first, then everything else later.
+	 */
+	for (i = 0; i < numdevs; i++) {
+		child = devlist[i];
+		switch (pci_get_class(child)) {
+		case PCIC_DISPLAY:
+		case PCIC_MEMORY:
+		case PCIC_BRIDGE:
+		case PCIC_BASEPERIPH:
+			DEVICE_RESUME(child);
+			break;
+		}
+	}
+	for (i = 0; i < numdevs; i++) {
+		child = devlist[i];
+		switch (pci_get_class(child)) {
+		case PCIC_DISPLAY:
+		case PCIC_MEMORY:
+		case PCIC_BRIDGE:
+		case PCIC_BASEPERIPH:
+			break;
+		default:
+			DEVICE_RESUME(child);
+		}
+	}
 	free(devlist, M_TEMP);
-	return (bus_generic_resume(dev));
+	return (0);
 }
 
 static void


More information about the svn-src-all mailing list