]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/Kernel/IOServicePM.cpp
xnu-1699.22.81.tar.gz
[apple/xnu.git] / iokit / Kernel / IOServicePM.cpp
index bd7bcd0024d8918dbc85e7a347af2c1d3ff7e8fd..11efcab256d367c193e9b0905ad737905dfd9062 100644 (file)
@@ -4019,6 +4019,15 @@ void IOService::all_done ( void )
                          ((fHeadNoteChangeFlags & kIOPMDomainDidChange)  &&
              (fCurrentPowerState < fHeadNotePowerState)))
         {
+            if ((fHeadNoteChangeFlags & kIOPMPowerSuppressed) &&
+                (fHeadNotePowerState != fCurrentPowerState) &&
+                (fHeadNotePowerState == fDesiredPowerState))
+            {
+                // Power changed, and desired power state restored.
+                // Clear any prior power desire while in suppressed state.
+                requestDomainPower(fHeadNotePowerState);
+            }
+
             // did power raise?
             if ( fCurrentPowerState < fHeadNotePowerState )
             {