• Home
  • Raw
  • Download

Lines Matching +full:system +full:- +full:bus

2  * drivers/base/power/main.c - Where the driver meets power management.
12 * and add it to the list of power-controlled devices. sysfs entries for
25 #include <linux/pm-trace.h>
89 * device_pm_sleep_init - Initialize system suspend-related device fields.
94 dev->power.is_prepared = false; in device_pm_sleep_init()
95 dev->power.is_suspended = false; in device_pm_sleep_init()
96 dev->power.is_noirq_suspended = false; in device_pm_sleep_init()
97 dev->power.is_late_suspended = false; in device_pm_sleep_init()
98 init_completion(&dev->power.completion); in device_pm_sleep_init()
99 complete_all(&dev->power.completion); in device_pm_sleep_init()
100 dev->power.wakeup = NULL; in device_pm_sleep_init()
101 INIT_LIST_HEAD(&dev->power.entry); in device_pm_sleep_init()
105 * device_pm_lock - Lock the list of active devices used by the PM core.
113 * device_pm_unlock - Unlock the list of active devices used by the PM core.
121 * device_pm_add - Add a device to the PM core's list of active devices.
127 dev->bus ? dev->bus->name : "No Bus", dev_name(dev)); in device_pm_add()
130 if (dev->parent && dev->parent->power.is_prepared) in device_pm_add()
132 dev_name(dev->parent)); in device_pm_add()
133 list_add_tail(&dev->power.entry, &dpm_list); in device_pm_add()
134 dev->power.in_dpm_list = true; in device_pm_add()
139 * device_pm_remove - Remove a device from the PM core's list of active devices.
145 dev->bus ? dev->bus->name : "No Bus", dev_name(dev)); in device_pm_remove()
146 complete_all(&dev->power.completion); in device_pm_remove()
148 list_del_init(&dev->power.entry); in device_pm_remove()
149 dev->power.in_dpm_list = false; in device_pm_remove()
157 * device_pm_move_before - Move device in the PM core's list of active devices.
164 deva->bus ? deva->bus->name : "No Bus", dev_name(deva), in device_pm_move_before()
165 devb->bus ? devb->bus->name : "No Bus", dev_name(devb)); in device_pm_move_before()
167 list_move_tail(&deva->power.entry, &devb->power.entry); in device_pm_move_before()
171 * device_pm_move_after - Move device in the PM core's list of active devices.
178 deva->bus ? deva->bus->name : "No Bus", dev_name(deva), in device_pm_move_after()
179 devb->bus ? devb->bus->name : "No Bus", dev_name(devb)); in device_pm_move_after()
181 list_move(&deva->power.entry, &devb->power.entry); in device_pm_move_after()
185 * device_pm_move_last - Move device to end of the PM core's list of devices.
191 dev->bus ? dev->bus->name : "No Bus", dev_name(dev)); in device_pm_move_last()
192 list_move_tail(&dev->power.entry, &dpm_list); in device_pm_move_last()
202 dev->parent ? dev_name(dev->parent) : "none"); in initcall_debug_start()
223 * dpm_wait - Wait for a PM operation to complete.
232 if (async || (pm_async_enabled && dev->power.async_suspend)) in dpm_wait()
233 wait_for_completion(&dev->power.completion); in dpm_wait()
261 list_for_each_entry_rcu(link, &dev->links.suppliers, c_node) in dpm_wait_for_suppliers()
262 if (READ_ONCE(link->status) != DL_STATE_DORMANT) in dpm_wait_for_suppliers()
263 dpm_wait(link->supplier, async); in dpm_wait_for_suppliers()
286 parent = get_device(dev->parent); in dpm_wait_for_superior()
311 * probe, but that cannot happen during system suspend/resume. In in dpm_wait_for_consumers()
318 list_for_each_entry_rcu(link, &dev->links.consumers, s_node) in dpm_wait_for_consumers()
319 if (READ_ONCE(link->status) != DL_STATE_DORMANT) in dpm_wait_for_consumers()
320 dpm_wait(link->consumer, async); in dpm_wait_for_consumers()
332 * pm_op - Return the PM operation appropriate for given PM event.
334 * @state: PM transition of the system being carried out.
341 return ops->suspend; in pm_op()
343 return ops->resume; in pm_op()
348 return ops->freeze; in pm_op()
350 return ops->poweroff; in pm_op()
353 return ops->thaw; in pm_op()
356 return ops->restore; in pm_op()
364 * pm_late_early_op - Return the PM operation appropriate for given PM event.
366 * @state: PM transition of the system being carried out.
376 return ops->suspend_late; in pm_late_early_op()
378 return ops->resume_early; in pm_late_early_op()
383 return ops->freeze_late; in pm_late_early_op()
385 return ops->poweroff_late; in pm_late_early_op()
388 return ops->thaw_early; in pm_late_early_op()
390 return ops->restore_early; in pm_late_early_op()
398 * pm_noirq_op - Return the PM operation appropriate for given PM event.
400 * @state: PM transition of the system being carried out.
410 return ops->suspend_noirq; in pm_noirq_op()
412 return ops->resume_noirq; in pm_noirq_op()
417 return ops->freeze_noirq; in pm_noirq_op()
419 return ops->poweroff_noirq; in pm_noirq_op()
422 return ops->thaw_noirq; in pm_noirq_op()
424 return ops->restore_noirq; in pm_noirq_op()
498 * dpm_watchdog_handler - Driver suspend / resume watchdog handler.
503 * capture a crash-dump in pstore.
509 dev_emerg(wd->dev, "**** DPM device timeout ****\n"); in dpm_watchdog_handler()
510 show_stack(wd->tsk, NULL); in dpm_watchdog_handler()
512 dev_driver_string(wd->dev), dev_name(wd->dev)); in dpm_watchdog_handler()
516 * dpm_watchdog_set - Enable pm watchdog for given device.
522 struct timer_list *timer = &wd->timer; in dpm_watchdog_set()
524 wd->dev = dev; in dpm_watchdog_set()
525 wd->tsk = current; in dpm_watchdog_set()
529 timer->expires = jiffies + HZ * CONFIG_DPM_WATCHDOG_TIMEOUT; in dpm_watchdog_set()
534 * dpm_watchdog_clear - Disable suspend/resume watchdog.
539 struct timer_list *timer = &wd->timer; in dpm_watchdog_clear()
550 /*------------------------- Resume routines -------------------------*/
553 * dev_pm_skip_next_resume_phases - Skip next system resume phases for device.
558 * This function can be called by middle-layer code during the "noirq" phase of
559 * system resume if necessary, but not by device drivers.
563 dev->power.is_late_suspended = false; in dev_pm_skip_next_resume_phases()
564 dev->power.is_suspended = false; in dev_pm_skip_next_resume_phases()
568 * suspend_event - Return a "suspend" message for given "resume" one.
569 * @resume_msg: PM message representing a system-wide resume transition.
586 * dev_pm_may_skip_resume - System-wide device resume optimization check.
589 * Checks whether or not the device may be left in suspend after a system-wide
594 return !dev->power.must_resume && pm_transition.event != PM_EVENT_RESTORE; in dev_pm_may_skip_resume()
604 if (dev->pm_domain) { in dpm_subsys_resume_noirq_cb()
606 callback = pm_noirq_op(&dev->pm_domain->ops, state); in dpm_subsys_resume_noirq_cb()
607 } else if (dev->type && dev->type->pm) { in dpm_subsys_resume_noirq_cb()
609 callback = pm_noirq_op(dev->type->pm, state); in dpm_subsys_resume_noirq_cb()
610 } else if (dev->class && dev->class->pm) { in dpm_subsys_resume_noirq_cb()
612 callback = pm_noirq_op(dev->class->pm, state); in dpm_subsys_resume_noirq_cb()
613 } else if (dev->bus && dev->bus->pm) { in dpm_subsys_resume_noirq_cb()
614 info = "noirq bus "; in dpm_subsys_resume_noirq_cb()
615 callback = pm_noirq_op(dev->bus->pm, state); in dpm_subsys_resume_noirq_cb()
635 * device_resume_noirq - Execute a "noirq resume" callback for given device.
637 * @state: PM transition of the system being carried out.
653 if (dev->power.syscore || dev->power.direct_complete) in device_resume_noirq()
656 if (!dev->power.is_noirq_suspended) in device_resume_noirq()
693 if (dev->driver && dev->driver->pm) { in device_resume_noirq()
695 callback = pm_noirq_op(dev->driver->pm, state); in device_resume_noirq()
702 dev->power.is_noirq_suspended = false; in device_resume_noirq()
707 * have been in runtime suspend before the system suspended, so in device_resume_noirq()
717 complete_all(&dev->power.completion); in device_resume_noirq()
724 return dev->power.async_suspend && pm_async_enabled in is_async()
752 * delayed by non-async resuming devices. in dpm_noirq_resume_devices()
755 reinit_completion(&dev->power.completion); in dpm_noirq_resume_devices()
765 list_move_tail(&dev->power.entry, &dpm_late_early_list); in dpm_noirq_resume_devices()
797 * dpm_resume_noirq - Execute "noirq resume" callbacks for all devices.
798 * @state: PM transition of the system being carried out.
816 if (dev->pm_domain) { in dpm_subsys_resume_early_cb()
818 callback = pm_late_early_op(&dev->pm_domain->ops, state); in dpm_subsys_resume_early_cb()
819 } else if (dev->type && dev->type->pm) { in dpm_subsys_resume_early_cb()
821 callback = pm_late_early_op(dev->type->pm, state); in dpm_subsys_resume_early_cb()
822 } else if (dev->class && dev->class->pm) { in dpm_subsys_resume_early_cb()
824 callback = pm_late_early_op(dev->class->pm, state); in dpm_subsys_resume_early_cb()
825 } else if (dev->bus && dev->bus->pm) { in dpm_subsys_resume_early_cb()
826 info = "early bus "; in dpm_subsys_resume_early_cb()
827 callback = pm_late_early_op(dev->bus->pm, state); in dpm_subsys_resume_early_cb()
839 * device_resume_early - Execute an "early resume" callback for given device.
841 * @state: PM transition of the system being carried out.
855 if (dev->power.syscore || dev->power.direct_complete) in device_resume_early()
858 if (!dev->power.is_late_suspended) in device_resume_early()
866 if (!callback && dev->driver && dev->driver->pm) { in device_resume_early()
868 callback = pm_late_early_op(dev->driver->pm, state); in device_resume_early()
872 dev->power.is_late_suspended = false; in device_resume_early()
878 complete_all(&dev->power.completion); in device_resume_early()
895 * dpm_resume_early - Execute "early resume" callbacks for all devices.
896 * @state: PM transition of the system being carried out.
910 * delayed by non-async resuming devices. in dpm_resume_early()
913 reinit_completion(&dev->power.completion); in dpm_resume_early()
923 list_move_tail(&dev->power.entry, &dpm_suspended_list); in dpm_resume_early()
947 * dpm_resume_start - Execute "noirq" and "early" device callbacks.
948 * @state: PM transition of the system being carried out.
958 * device_resume - Execute "resume" callbacks for given device.
960 * @state: PM transition of the system being carried out.
973 if (dev->power.syscore) in device_resume()
976 if (dev->power.direct_complete) { in device_resume()
992 dev->power.is_prepared = false; in device_resume()
994 if (!dev->power.is_suspended) in device_resume()
997 if (dev->pm_domain) { in device_resume()
999 callback = pm_op(&dev->pm_domain->ops, state); in device_resume()
1003 if (dev->type && dev->type->pm) { in device_resume()
1005 callback = pm_op(dev->type->pm, state); in device_resume()
1009 if (dev->class && dev->class->pm) { in device_resume()
1011 callback = pm_op(dev->class->pm, state); in device_resume()
1015 if (dev->bus) { in device_resume()
1016 if (dev->bus->pm) { in device_resume()
1017 info = "bus "; in device_resume()
1018 callback = pm_op(dev->bus->pm, state); in device_resume()
1019 } else if (dev->bus->resume) { in device_resume()
1020 info = "legacy bus "; in device_resume()
1021 callback = dev->bus->resume; in device_resume()
1027 if (!callback && dev->driver && dev->driver->pm) { in device_resume()
1029 callback = pm_op(dev->driver->pm, state); in device_resume()
1034 dev->power.is_suspended = false; in device_resume()
1041 complete_all(&dev->power.completion); in device_resume()
1060 * dpm_resume - Execute "resume" callbacks for non-sysdev devices.
1061 * @state: PM transition of the system being carried out.
1079 reinit_completion(&dev->power.completion); in dpm_resume()
1104 if (!list_empty(&dev->power.entry)) in dpm_resume()
1105 list_move_tail(&dev->power.entry, &dpm_prepared_list); in dpm_resume()
1117 * device_complete - Complete a PM transition for given device.
1119 * @state: PM transition of the system being carried out.
1126 if (dev->power.syscore) in device_complete()
1131 if (dev->pm_domain) { in device_complete()
1133 callback = dev->pm_domain->ops.complete; in device_complete()
1134 } else if (dev->type && dev->type->pm) { in device_complete()
1136 callback = dev->type->pm->complete; in device_complete()
1137 } else if (dev->class && dev->class->pm) { in device_complete()
1139 callback = dev->class->pm->complete; in device_complete()
1140 } else if (dev->bus && dev->bus->pm) { in device_complete()
1141 info = "completing bus "; in device_complete()
1142 callback = dev->bus->pm->complete; in device_complete()
1145 if (!callback && dev->driver && dev->driver->pm) { in device_complete()
1147 callback = dev->driver->pm->complete; in device_complete()
1161 * dpm_complete - Complete a PM transition for all non-sysdev devices.
1162 * @state: PM transition of the system being carried out.
1164 * Execute the ->complete() callbacks for all devices whose PM status is not
1180 dev->power.is_prepared = false; in dpm_complete()
1181 list_move(&dev->power.entry, &list); in dpm_complete()
1194 /* Allow device probing and trigger re-probing of deferred devices */ in dpm_complete()
1200 * dpm_resume_end - Execute "resume" callbacks and complete system transition.
1201 * @state: PM transition of the system being carried out.
1204 * the system.
1214 /*------------------------- Suspend routines -------------------------*/
1217 * resume_event - Return a "resume" message for given "suspend" sleep state.
1242 if (dev->parent) in dpm_superior_set_must_resume()
1243 dev->parent->power.must_resume = true; in dpm_superior_set_must_resume()
1247 list_for_each_entry_rcu(link, &dev->links.suppliers, c_node) in dpm_superior_set_must_resume()
1248 link->supplier->power.must_resume = true; in dpm_superior_set_must_resume()
1260 if (dev->pm_domain) { in dpm_subsys_suspend_noirq_cb()
1262 callback = pm_noirq_op(&dev->pm_domain->ops, state); in dpm_subsys_suspend_noirq_cb()
1263 } else if (dev->type && dev->type->pm) { in dpm_subsys_suspend_noirq_cb()
1265 callback = pm_noirq_op(dev->type->pm, state); in dpm_subsys_suspend_noirq_cb()
1266 } else if (dev->class && dev->class->pm) { in dpm_subsys_suspend_noirq_cb()
1268 callback = pm_noirq_op(dev->class->pm, state); in dpm_subsys_suspend_noirq_cb()
1269 } else if (dev->bus && dev->bus->pm) { in dpm_subsys_suspend_noirq_cb()
1270 info = "noirq bus "; in dpm_subsys_suspend_noirq_cb()
1271 callback = pm_noirq_op(dev->bus->pm, state); in dpm_subsys_suspend_noirq_cb()
1305 return !dev->power.may_skip_resume; in device_must_resume()
1309 * __device_suspend_noirq - Execute a "noirq suspend" callback for given device.
1311 * @state: PM transition of the system being carried out.
1333 async_error = -EBUSY; in __device_suspend_noirq()
1337 if (dev->power.syscore || dev->power.direct_complete) in __device_suspend_noirq()
1349 if (dev->driver && dev->driver->pm) { in __device_suspend_noirq()
1351 callback = pm_noirq_op(dev->driver->pm, state); in __device_suspend_noirq()
1362 dev->power.is_noirq_suspended = true; in __device_suspend_noirq()
1365 dev->power.must_resume = dev->power.must_resume || in __device_suspend_noirq()
1366 atomic_read(&dev->power.usage_count) > 1 || in __device_suspend_noirq()
1369 dev->power.must_resume = true; in __device_suspend_noirq()
1372 if (dev->power.must_resume) in __device_suspend_noirq()
1376 complete_all(&dev->power.completion); in __device_suspend_noirq()
1397 reinit_completion(&dev->power.completion); in device_suspend_noirq()
1439 if (!list_empty(&dev->power.entry)) in dpm_noirq_suspend_devices()
1440 list_move(&dev->power.entry, &dpm_noirq_list); in dpm_noirq_suspend_devices()
1461 * dpm_suspend_noirq - Execute "noirq suspend" callbacks for all devices.
1462 * @state: PM transition of the system being carried out.
1465 * "noirq" suspend callbacks for all non-sysdev devices.
1481 struct device *parent = dev->parent; in dpm_propagate_wakeup_to_parent()
1486 spin_lock_irq(&parent->power.lock); in dpm_propagate_wakeup_to_parent()
1488 if (dev->power.wakeup_path && !parent->power.ignore_children) in dpm_propagate_wakeup_to_parent()
1489 parent->power.wakeup_path = true; in dpm_propagate_wakeup_to_parent()
1491 spin_unlock_irq(&parent->power.lock); in dpm_propagate_wakeup_to_parent()
1501 if (dev->pm_domain) { in dpm_subsys_suspend_late_cb()
1503 callback = pm_late_early_op(&dev->pm_domain->ops, state); in dpm_subsys_suspend_late_cb()
1504 } else if (dev->type && dev->type->pm) { in dpm_subsys_suspend_late_cb()
1506 callback = pm_late_early_op(dev->type->pm, state); in dpm_subsys_suspend_late_cb()
1507 } else if (dev->class && dev->class->pm) { in dpm_subsys_suspend_late_cb()
1509 callback = pm_late_early_op(dev->class->pm, state); in dpm_subsys_suspend_late_cb()
1510 } else if (dev->bus && dev->bus->pm) { in dpm_subsys_suspend_late_cb()
1511 info = "late bus "; in dpm_subsys_suspend_late_cb()
1512 callback = pm_late_early_op(dev->bus->pm, state); in dpm_subsys_suspend_late_cb()
1524 * __device_suspend_late - Execute a "late suspend" callback for given device.
1526 * @state: PM transition of the system being carried out.
1548 async_error = -EBUSY; in __device_suspend_late()
1552 if (dev->power.syscore || dev->power.direct_complete) in __device_suspend_late()
1563 if (dev->driver && dev->driver->pm) { in __device_suspend_late()
1565 callback = pm_late_early_op(dev->driver->pm, state); in __device_suspend_late()
1577 dev->power.is_late_suspended = true; in __device_suspend_late()
1581 complete_all(&dev->power.completion); in __device_suspend_late()
1600 reinit_completion(&dev->power.completion); in device_suspend_late()
1612 * dpm_suspend_late - Execute "late suspend" callbacks for all devices.
1613 * @state: PM transition of the system being carried out.
1634 if (!list_empty(&dev->power.entry)) in dpm_suspend_late()
1635 list_move(&dev->power.entry, &dpm_late_early_list); in dpm_suspend_late()
1663 * dpm_suspend_end - Execute "late" and "noirq" device suspend callbacks.
1664 * @state: PM transition of the system being carried out.
1683 * legacy_suspend - Execute a legacy (bus or class) suspend callback for device.
1685 * @state: PM transition of the system being carried out.
1713 if (dev->parent) { in dpm_clear_superiors_direct_complete()
1714 spin_lock_irq(&dev->parent->power.lock); in dpm_clear_superiors_direct_complete()
1715 dev->parent->power.direct_complete = false; in dpm_clear_superiors_direct_complete()
1716 spin_unlock_irq(&dev->parent->power.lock); in dpm_clear_superiors_direct_complete()
1721 list_for_each_entry_rcu(link, &dev->links.suppliers, c_node) { in dpm_clear_superiors_direct_complete()
1722 spin_lock_irq(&link->supplier->power.lock); in dpm_clear_superiors_direct_complete()
1723 link->supplier->power.direct_complete = false; in dpm_clear_superiors_direct_complete()
1724 spin_unlock_irq(&link->supplier->power.lock); in dpm_clear_superiors_direct_complete()
1731 * __device_suspend - Execute "suspend" callbacks for given device.
1733 * @state: PM transition of the system being carried out.
1749 dev->power.direct_complete = false; in __device_suspend()
1756 * resume it before proceeding with invoking the system-wide suspend in __device_suspend()
1759 * If the system-wide suspend callbacks below change the configuration in __device_suspend()
1761 * ensure that its runtime-resume callbacks will not be confused by that in __device_suspend()
1767 dev->power.direct_complete = false; in __device_suspend()
1768 async_error = -EBUSY; in __device_suspend()
1772 if (dev->power.syscore) in __device_suspend()
1776 if (device_may_wakeup(dev) || dev->power.wakeup_path) in __device_suspend()
1777 dev->power.direct_complete = false; in __device_suspend()
1779 if (dev->power.direct_complete) { in __device_suspend()
1787 dev->power.direct_complete = false; in __device_suspend()
1790 dev->power.may_skip_resume = false; in __device_suspend()
1791 dev->power.must_resume = false; in __device_suspend()
1796 if (dev->pm_domain) { in __device_suspend()
1798 callback = pm_op(&dev->pm_domain->ops, state); in __device_suspend()
1802 if (dev->type && dev->type->pm) { in __device_suspend()
1804 callback = pm_op(dev->type->pm, state); in __device_suspend()
1808 if (dev->class && dev->class->pm) { in __device_suspend()
1810 callback = pm_op(dev->class->pm, state); in __device_suspend()
1814 if (dev->bus) { in __device_suspend()
1815 if (dev->bus->pm) { in __device_suspend()
1816 info = "bus "; in __device_suspend()
1817 callback = pm_op(dev->bus->pm, state); in __device_suspend()
1818 } else if (dev->bus->suspend) { in __device_suspend()
1819 pm_dev_dbg(dev, state, "legacy bus "); in __device_suspend()
1820 error = legacy_suspend(dev, state, dev->bus->suspend, in __device_suspend()
1821 "legacy bus "); in __device_suspend()
1827 if (!callback && dev->driver && dev->driver->pm) { in __device_suspend()
1829 callback = pm_op(dev->driver->pm, state); in __device_suspend()
1836 dev->power.is_suspended = true; in __device_suspend()
1838 dev->power.wakeup_path = true; in __device_suspend()
1851 complete_all(&dev->power.completion); in __device_suspend()
1872 reinit_completion(&dev->power.completion); in device_suspend()
1884 * dpm_suspend - Execute "suspend" callbacks for all non-sysdev devices.
1885 * @state: PM transition of the system being carried out.
1915 if (!list_empty(&dev->power.entry)) in dpm_suspend()
1916 list_move(&dev->power.entry, &dpm_suspended_list); in dpm_suspend()
1935 * device_prepare - Prepare a device for system power transition.
1937 * @state: PM transition of the system being carried out.
1939 * Execute the ->prepare() callback(s) for given device. No new children of the
1947 if (dev->power.syscore) in device_prepare()
1964 dev->power.wakeup_path = false; in device_prepare()
1966 if (dev->power.no_pm_callbacks) in device_prepare()
1969 if (dev->pm_domain) in device_prepare()
1970 callback = dev->pm_domain->ops.prepare; in device_prepare()
1971 else if (dev->type && dev->type->pm) in device_prepare()
1972 callback = dev->type->pm->prepare; in device_prepare()
1973 else if (dev->class && dev->class->pm) in device_prepare()
1974 callback = dev->class->pm->prepare; in device_prepare()
1975 else if (dev->bus && dev->bus->pm) in device_prepare()
1976 callback = dev->bus->pm->prepare; in device_prepare()
1978 if (!callback && dev->driver && dev->driver->pm) in device_prepare()
1979 callback = dev->driver->pm->prepare; in device_prepare()
1993 * A positive return value from ->prepare() means "this device appears in device_prepare()
1994 * to be runtime-suspended and its state is fine, so if it really is in device_prepare()
1995 * runtime-suspended, you can leave it in that state provided that you in device_prepare()
1999 spin_lock_irq(&dev->power.lock); in device_prepare()
2000 dev->power.direct_complete = state.event == PM_EVENT_SUSPEND && in device_prepare()
2002 dev->power.no_pm_callbacks) && in device_prepare()
2004 spin_unlock_irq(&dev->power.lock); in device_prepare()
2009 * dpm_prepare - Prepare all non-sysdev devices for a system PM transition.
2010 * @state: PM transition of the system being carried out.
2012 * Execute the ->prepare() callback(s) for all devices.
2029 * hibernation and system behavior will be unpredictable in this case. in dpm_prepare()
2048 if (error == -EAGAIN) { in dpm_prepare()
2059 dev->power.is_prepared = true; in dpm_prepare()
2060 if (!list_empty(&dev->power.entry)) in dpm_prepare()
2061 list_move_tail(&dev->power.entry, &dpm_prepared_list); in dpm_prepare()
2070 * dpm_suspend_start - Prepare devices for PM transition and suspend them.
2071 * @state: PM transition of the system being carried out.
2073 * Prepare all non-sysdev devices for system PM transition and execute "suspend"
2098 * device_pm_wait_for_dev - Wait for suspend/resume of a device to complete.
2104 dpm_wait(dev, subordinate->power.async_suspend); in device_pm_wait_for_dev()
2110 * dpm_for_each_dev - device iterator.
2136 return !ops->prepare && in pm_ops_is_empty()
2137 !ops->suspend && in pm_ops_is_empty()
2138 !ops->suspend_late && in pm_ops_is_empty()
2139 !ops->suspend_noirq && in pm_ops_is_empty()
2140 !ops->resume_noirq && in pm_ops_is_empty()
2141 !ops->resume_early && in pm_ops_is_empty()
2142 !ops->resume && in pm_ops_is_empty()
2143 !ops->complete; in pm_ops_is_empty()
2148 spin_lock_irq(&dev->power.lock); in device_pm_check_callbacks()
2149 dev->power.no_pm_callbacks = in device_pm_check_callbacks()
2150 (!dev->bus || (pm_ops_is_empty(dev->bus->pm) && in device_pm_check_callbacks()
2151 !dev->bus->suspend && !dev->bus->resume)) && in device_pm_check_callbacks()
2152 (!dev->class || pm_ops_is_empty(dev->class->pm)) && in device_pm_check_callbacks()
2153 (!dev->type || pm_ops_is_empty(dev->type->pm)) && in device_pm_check_callbacks()
2154 (!dev->pm_domain || pm_ops_is_empty(&dev->pm_domain->ops)) && in device_pm_check_callbacks()
2155 (!dev->driver || (pm_ops_is_empty(dev->driver->pm) && in device_pm_check_callbacks()
2156 !dev->driver->suspend && !dev->driver->resume)); in device_pm_check_callbacks()
2157 spin_unlock_irq(&dev->power.lock); in device_pm_check_callbacks()