kIOPMRequestTypeSynchronizePowerTree = 0x0D,
kIOPMRequestTypeRequestPowerStateOverride = 0x0E,
kIOPMRequestTypeSetIdleTimerPeriod = 0x0F,
+ kIOPMRequestTypeIgnoreIdleTimer = 0x10,
/* Reply Types */
kIOPMRequestTypeReplyStart = 0x80,
unsigned int InitialPowerChange:1;
unsigned int InitialSetPowerState:1;
unsigned int DeviceOverrideEnabled:1;
- unsigned int DeviceWasActive:1;
unsigned int DoNotPowerDown:1;
unsigned int ParentsKnowState:1;
unsigned int StrictTreeOrder:1;
unsigned int IsPreChange:1;
unsigned int DriverCallBusy:1;
unsigned int PCDFunctionOverride:1;
+ unsigned int IdleTimerIgnored:1;
+ unsigned int HasAdvisoryDesire:1;
+ unsigned int AdvisoryTickleUsed:1;
// Time of last device activity.
AbsoluteTime DeviceActiveTimestamp;
AbsoluteTime DriverCallStartTime;
IOPMPowerFlags CurrentCapabilityFlags;
- long ActivityTicklePowerState;
unsigned long CurrentPowerConsumption;
IOPMPowerStateIndex TempClampPowerState;
OSArray * NotifyChildArray;
uint32_t OutOfBandMessage;
uint32_t TempClampCount;
uint32_t OverrideMaxPowerState;
+ uint32_t DeviceUsablePowerState;
+
+ // Protected by ActivityLock - BEGIN
+ int ActivityTicklePowerState;
+ int AdvisoryTicklePowerState;
uint32_t ActivityTickleCount;
+ uint32_t DeviceWasActive : 1;
+ uint32_t AdvisoryTickled : 1;
+ // Protected by ActivityLock - END
+
uint32_t WaitReason;
uint32_t SavedMachineState;
uint32_t RootDomainState;
// Serialize IOServicePM state for debug output.
IOReturn gatedSerialize( OSSerialize * s );
virtual bool serialize( OSSerialize * s ) const;
+
+ // PM log and trace
+ void pmPrint( uint32_t event, uintptr_t param1, uintptr_t param2 ) const;
+ void pmTrace( uint32_t event, uintptr_t param1, uintptr_t param2 ) const;
};
#define fOwner pwrMgt->Owner
#define fInitialPowerChange pwrMgt->InitialPowerChange
#define fInitialSetPowerState pwrMgt->InitialSetPowerState
#define fDeviceOverrideEnabled pwrMgt->DeviceOverrideEnabled
-#define fDeviceWasActive pwrMgt->DeviceWasActive
#define fDoNotPowerDown pwrMgt->DoNotPowerDown
#define fParentsKnowState pwrMgt->ParentsKnowState
#define fStrictTreeOrder pwrMgt->StrictTreeOrder
#define fIsPreChange pwrMgt->IsPreChange
#define fDriverCallBusy pwrMgt->DriverCallBusy
#define fPCDFunctionOverride pwrMgt->PCDFunctionOverride
+#define fIdleTimerIgnored pwrMgt->IdleTimerIgnored
+#define fHasAdvisoryDesire pwrMgt->HasAdvisoryDesire
+#define fAdvisoryTickleUsed pwrMgt->AdvisoryTickleUsed
#define fDeviceActiveTimestamp pwrMgt->DeviceActiveTimestamp
#define fActivityLock pwrMgt->ActivityLock
#define fIdleTimerPeriod pwrMgt->IdleTimerPeriod
#define fOutOfBandParameter pwrMgt->OutOfBandParameter
#define fDriverCallStartTime pwrMgt->DriverCallStartTime
#define fCurrentCapabilityFlags pwrMgt->CurrentCapabilityFlags
-#define fActivityTicklePowerState pwrMgt->ActivityTicklePowerState
#define fCurrentPowerConsumption pwrMgt->CurrentPowerConsumption
#define fTempClampPowerState pwrMgt->TempClampPowerState
#define fNotifyChildArray pwrMgt->NotifyChildArray
#define fOutOfBandMessage pwrMgt->OutOfBandMessage
#define fTempClampCount pwrMgt->TempClampCount
#define fOverrideMaxPowerState pwrMgt->OverrideMaxPowerState
+#define fDeviceUsablePowerState pwrMgt->DeviceUsablePowerState
+#define fActivityTicklePowerState pwrMgt->ActivityTicklePowerState
+#define fAdvisoryTicklePowerState pwrMgt->AdvisoryTicklePowerState
#define fActivityTickleCount pwrMgt->ActivityTickleCount
+#define fDeviceWasActive pwrMgt->DeviceWasActive
+#define fAdvisoryTickled pwrMgt->AdvisoryTickled
#define fWaitReason pwrMgt->WaitReason
#define fSavedMachineState pwrMgt->SavedMachineState
#define fRootDomainState pwrMgt->RootDomainState
#define kIOPMSyncNoChildNotify 0x0200 // sync root domain only, not entire tree
#define kIOPMSyncTellPowerDown 0x0400 // send the ask/will power off messages
#define kIOPMSyncCancelPowerDown 0x0800 // sleep cancel for maintenance wake
-#define kIOPMPowerSuppressed 0x1000 // power suppressed for dark wake
+#define kIOPMInitialPowerChange 0x1000 // set for initial power change
enum {
kDriverCallInformPreChange,