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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to