dev_pm_infoRegular
4.4: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool ignore_children;
bool early_init;
bool direct_complete;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
struct timer_list suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int run_wake;
unsigned int runtime_auto;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
long unsigned int last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
4.8: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool early_init;
bool direct_complete;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
struct timer_list suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int run_wake;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
long unsigned int last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
4.10: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool early_init;
bool direct_complete;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
struct timer_list suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int run_wake;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
long unsigned int last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
4.13: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool early_init;
bool direct_complete;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
struct timer_list suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
long unsigned int last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
4.15: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct timer_list suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
long unsigned int last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
4.18: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct timer_list suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
long unsigned int last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.0: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
long unsigned int active_jiffies;
long unsigned int suspended_jiffies;
long unsigned int accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.3: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.4: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.8: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.11: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.13: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int needs_force_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.15: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int needs_force_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
5.19: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int needs_force_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
enum rpm_status last_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
6.2: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int needs_force_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
enum rpm_status last_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
6.5: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int needs_force_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
enum rpm_status last_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
6.8: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
bool async_in_progress;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int needs_force_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
enum rpm_status last_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
arm64: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
armhf: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
ppc64el: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
riscv64: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
unsigned int should_wakeup;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
aws: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
azure: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
gcp: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
lowlatency: ✅struct dev_pm_info {
pm_message_t power_state;
unsigned int can_wakeup;
unsigned int async_suspend;
bool in_dpm_list;
bool is_prepared;
bool is_suspended;
bool is_noirq_suspended;
bool is_late_suspended;
bool no_pm;
bool early_init;
bool direct_complete;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path;
bool syscore;
bool no_pm_callbacks;
unsigned int must_resume;
unsigned int may_skip_resume;
struct hrtimer suspend_timer;
long unsigned int timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth;
unsigned int idle_notification;
unsigned int request_pending;
unsigned int deferred_resume;
unsigned int runtime_auto;
bool ignore_children;
unsigned int no_callbacks;
unsigned int irq_safe;
unsigned int use_autosuspend;
unsigned int timer_autosuspends;
unsigned int memalloc_noio;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
Regular
4.4 and 4.8 ⚠️bool no_pm_callbacks
4.8 and 4.10 ⚠️bool in_dpm_list
unsigned int links_count
4.10 and 4.13 ⚠️unsigned int run_wake
4.13 and 4.15 ⚠️u32 driver_flags
unsigned int must_resume
unsigned int may_skip_resume
4.15 and 4.18 ✅
4.18 and 5.0 ⚠️struct timer_list suspend_timer ➡️ struct hrtimer suspend_timer
long unsigned int last_busy ➡️ u64 last_busy
5.0 and 5.3 ⚠️bool no_pm
u64 active_time
u64 suspended_time
long unsigned int active_jiffies
long unsigned int suspended_jiffies
long unsigned int accounting_timestamp ➡️ u64 accounting_timestamp
5.3 and 5.4 ✅
5.4 and 5.8 ✅
5.8 and 5.11 ⚠️long unsigned int timer_expires ➡️ u64 timer_expires
5.11 and 5.13 ⚠️unsigned int needs_force_resume
5.13 and 5.15 ✅
5.15 and 5.19 ⚠️enum rpm_status last_status
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ⚠️bool async_in_progress
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ⚠️unsigned int should_wakeup
struct list_head entry
struct completion completion
struct wakeup_source *wakeup
bool wakeup_path
bool syscore
bool no_pm_callbacks
unsigned int must_resume
unsigned int may_skip_resume
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅