Lines Matching refs:power

95 	dev->power.is_prepared = false;  in device_pm_sleep_init()
96 dev->power.is_suspended = false; in device_pm_sleep_init()
97 dev->power.is_noirq_suspended = false; in device_pm_sleep_init()
98 dev->power.is_late_suspended = false; in device_pm_sleep_init()
99 init_completion(&dev->power.completion); in device_pm_sleep_init()
100 complete_all(&dev->power.completion); in device_pm_sleep_init()
101 dev->power.wakeup = NULL; in device_pm_sleep_init()
102 INIT_LIST_HEAD(&dev->power.entry); in device_pm_sleep_init()
135 if (dev->parent && dev->parent->power.is_prepared) in device_pm_add()
138 list_add_tail(&dev->power.entry, &dpm_list); in device_pm_add()
139 dev->power.in_dpm_list = true; in device_pm_add()
154 complete_all(&dev->power.completion); in device_pm_remove()
156 list_del_init(&dev->power.entry); in device_pm_remove()
157 dev->power.in_dpm_list = false; in device_pm_remove()
175 list_move_tail(&deva->power.entry, &devb->power.entry); in device_pm_move_before()
189 list_move(&deva->power.entry, &devb->power.entry); in device_pm_move_after()
200 list_move_tail(&dev->power.entry, &dpm_list); in device_pm_move_last()
240 if (async || (pm_async_enabled && dev->power.async_suspend)) in dpm_wait()
241 wait_for_completion(&dev->power.completion); in dpm_wait()
559 return !dev->power.must_resume && pm_transition.event != PM_EVENT_RESTORE; in dev_pm_may_skip_resume()
618 if (dev->power.syscore || dev->power.direct_complete) in device_resume_noirq()
621 if (!dev->power.is_noirq_suspended) in device_resume_noirq()
666 dev->power.is_noirq_suspended = false; in device_resume_noirq()
670 dev->power.is_late_suspended = false; in device_resume_noirq()
671 dev->power.is_suspended = false; in device_resume_noirq()
683 complete_all(&dev->power.completion); in device_resume_noirq()
690 return dev->power.async_suspend && pm_async_enabled in is_async()
696 reinit_completion(&dev->power.completion); in dpm_async_fn()
733 list_for_each_entry(dev, &dpm_noirq_list, power.entry) in dpm_noirq_resume_devices()
739 list_move_tail(&dev->power.entry, &dpm_late_early_list); in dpm_noirq_resume_devices()
826 if (dev->power.syscore || dev->power.direct_complete) in device_resume_early()
829 if (!dev->power.is_late_suspended) in device_resume_early()
842 dev->power.is_late_suspended = false; in device_resume_early()
848 complete_all(&dev->power.completion); in device_resume_early()
882 list_for_each_entry(dev, &dpm_late_early_list, power.entry) in dpm_resume_early()
888 list_move_tail(&dev->power.entry, &dpm_suspended_list); in dpm_resume_early()
938 if (dev->power.syscore) in device_resume()
941 if (dev->power.direct_complete) { in device_resume()
955 dev->power.is_prepared = false; in device_resume()
957 if (!dev->power.is_suspended) in device_resume()
997 dev->power.is_suspended = false; in device_resume()
1004 complete_all(&dev->power.completion); in device_resume()
1041 list_for_each_entry(dev, &dpm_suspended_list, power.entry) in dpm_resume()
1062 if (!list_empty(&dev->power.entry)) in dpm_resume()
1063 list_move_tail(&dev->power.entry, &dpm_prepared_list); in dpm_resume()
1085 if (dev->power.syscore) in device_complete()
1139 dev->power.is_prepared = false; in dpm_complete()
1140 list_move(&dev->power.entry, &list); in dpm_complete()
1202 dev->parent->power.must_resume = true; in dpm_superior_set_must_resume()
1207 link->supplier->power.must_resume = true; in dpm_superior_set_must_resume()
1264 return !dev->power.may_skip_resume; in device_must_resume()
1291 if (dev->power.syscore || dev->power.direct_complete) in __device_suspend_noirq()
1316 dev->power.is_noirq_suspended = true; in __device_suspend_noirq()
1319 dev->power.must_resume = dev->power.must_resume || in __device_suspend_noirq()
1320 atomic_read(&dev->power.usage_count) > 1 || in __device_suspend_noirq()
1323 dev->power.must_resume = true; in __device_suspend_noirq()
1326 if (dev->power.must_resume) in __device_suspend_noirq()
1330 complete_all(&dev->power.completion); in __device_suspend_noirq()
1382 if (!list_empty(&dev->power.entry)) in dpm_noirq_suspend_devices()
1383 list_move(&dev->power.entry, &dpm_noirq_list); in dpm_noirq_suspend_devices()
1433 spin_lock_irq(&parent->power.lock); in dpm_propagate_wakeup_to_parent()
1435 if (dev->power.wakeup_path && !parent->power.ignore_children) in dpm_propagate_wakeup_to_parent()
1436 parent->power.wakeup_path = true; in dpm_propagate_wakeup_to_parent()
1438 spin_unlock_irq(&parent->power.lock); in dpm_propagate_wakeup_to_parent()
1499 if (dev->power.syscore || dev->power.direct_complete) in __device_suspend_late()
1524 dev->power.is_late_suspended = true; in __device_suspend_late()
1528 complete_all(&dev->power.completion); in __device_suspend_late()
1576 if (!list_empty(&dev->power.entry)) in dpm_suspend_late()
1577 list_move(&dev->power.entry, &dpm_late_early_list); in dpm_suspend_late()
1659 spin_lock_irq(&dev->parent->power.lock); in dpm_clear_superiors_direct_complete()
1660 dev->parent->power.direct_complete = false; in dpm_clear_superiors_direct_complete()
1661 spin_unlock_irq(&dev->parent->power.lock); in dpm_clear_superiors_direct_complete()
1667 spin_lock_irq(&link->supplier->power.lock); in dpm_clear_superiors_direct_complete()
1668 link->supplier->power.direct_complete = false; in dpm_clear_superiors_direct_complete()
1669 spin_unlock_irq(&link->supplier->power.lock); in dpm_clear_superiors_direct_complete()
1694 dev->power.direct_complete = false; in __device_suspend()
1708 dev->power.direct_complete = false; in __device_suspend()
1713 if (dev->power.syscore) in __device_suspend()
1717 if (device_may_wakeup(dev) || dev->power.wakeup_path) in __device_suspend()
1718 dev->power.direct_complete = false; in __device_suspend()
1720 if (dev->power.direct_complete) { in __device_suspend()
1730 dev->power.direct_complete = false; in __device_suspend()
1733 dev->power.may_skip_resume = false; in __device_suspend()
1734 dev->power.must_resume = false; in __device_suspend()
1779 dev->power.is_suspended = true; in __device_suspend()
1781 dev->power.wakeup_path = true; in __device_suspend()
1794 complete_all(&dev->power.completion); in __device_suspend()
1854 if (!list_empty(&dev->power.entry)) in dpm_suspend()
1855 list_move(&dev->power.entry, &dpm_suspended_list); in dpm_suspend()
1886 if (dev->power.syscore) in device_prepare()
1903 dev->power.wakeup_path = false; in device_prepare()
1905 if (dev->power.no_pm_callbacks) in device_prepare()
1938 spin_lock_irq(&dev->power.lock); in device_prepare()
1939 dev->power.direct_complete = state.event == PM_EVENT_SUSPEND && in device_prepare()
1941 dev->power.no_pm_callbacks) && in device_prepare()
1943 spin_unlock_irq(&dev->power.lock); in device_prepare()
1997 dev->power.is_prepared = true; in dpm_prepare()
1998 if (!list_empty(&dev->power.entry)) in dpm_prepare()
1999 list_move_tail(&dev->power.entry, &dpm_prepared_list); in dpm_prepare()
2044 dpm_wait(dev, subordinate->power.async_suspend); in device_pm_wait_for_dev()
2065 list_for_each_entry(dev, &dpm_list, power.entry) in dpm_for_each_dev()
2088 spin_lock_irq(&dev->power.lock); in device_pm_check_callbacks()
2089 dev->power.no_pm_callbacks = in device_pm_check_callbacks()
2097 spin_unlock_irq(&dev->power.lock); in device_pm_check_callbacks()