Loading Documentation/power/runtime_pm.rst +3 −4 Original line number Diff line number Diff line Loading @@ -712,10 +712,9 @@ out the following operations: * During system suspend pm_runtime_get_noresume() is called for every device right before executing the subsystem-level .prepare() callback for it and pm_runtime_barrier() is called for every device right before executing the subsystem-level .suspend() callback for it. In addition to that the PM core calls __pm_runtime_disable() with 'false' as the second argument for every device right before executing the subsystem-level .suspend_late() callback for it. subsystem-level .suspend() callback for it. In addition to that, the PM core disables runtime PM for every device right before executing the subsystem-level .suspend_late() callback for it. * During system resume pm_runtime_enable() and pm_runtime_put() are called for every device right after executing the subsystem-level .resume_early() Loading drivers/base/power/main.c +4 −3 Original line number Diff line number Diff line Loading @@ -1647,10 +1647,11 @@ static void device_suspend_late(struct device *dev, pm_message_t state, bool asy goto Complete; /* * Disable runtime PM for the device without checking if there is a * pending resume request for it. * After this point, any runtime PM operations targeting the device * will fail until the corresponding pm_runtime_enable() call in * device_resume_early(). */ __pm_runtime_disable(dev, false); pm_runtime_disable(dev); if (dev->power.syscore) goto Skip; Loading kernel/power/main.c +1 −1 Original line number Diff line number Diff line Loading @@ -1125,7 +1125,7 @@ EXPORT_SYMBOL_GPL(pm_wq); static int __init pm_start_workqueues(void) { pm_wq = alloc_workqueue("pm", WQ_FREEZABLE | WQ_UNBOUND, 0); pm_wq = alloc_workqueue("pm", WQ_UNBOUND, 0); if (!pm_wq) return -ENOMEM; Loading Loading
Documentation/power/runtime_pm.rst +3 −4 Original line number Diff line number Diff line Loading @@ -712,10 +712,9 @@ out the following operations: * During system suspend pm_runtime_get_noresume() is called for every device right before executing the subsystem-level .prepare() callback for it and pm_runtime_barrier() is called for every device right before executing the subsystem-level .suspend() callback for it. In addition to that the PM core calls __pm_runtime_disable() with 'false' as the second argument for every device right before executing the subsystem-level .suspend_late() callback for it. subsystem-level .suspend() callback for it. In addition to that, the PM core disables runtime PM for every device right before executing the subsystem-level .suspend_late() callback for it. * During system resume pm_runtime_enable() and pm_runtime_put() are called for every device right after executing the subsystem-level .resume_early() Loading
drivers/base/power/main.c +4 −3 Original line number Diff line number Diff line Loading @@ -1647,10 +1647,11 @@ static void device_suspend_late(struct device *dev, pm_message_t state, bool asy goto Complete; /* * Disable runtime PM for the device without checking if there is a * pending resume request for it. * After this point, any runtime PM operations targeting the device * will fail until the corresponding pm_runtime_enable() call in * device_resume_early(). */ __pm_runtime_disable(dev, false); pm_runtime_disable(dev); if (dev->power.syscore) goto Skip; Loading
kernel/power/main.c +1 −1 Original line number Diff line number Diff line Loading @@ -1125,7 +1125,7 @@ EXPORT_SYMBOL_GPL(pm_wq); static int __init pm_start_workqueues(void) { pm_wq = alloc_workqueue("pm", WQ_FREEZABLE | WQ_UNBOUND, 0); pm_wq = alloc_workqueue("pm", WQ_UNBOUND, 0); if (!pm_wq) return -ENOMEM; Loading