Commit 8b9ec6b7 authored by Alexander Duyck's avatar Alexander Duyck Committed by Greg Kroah-Hartman

PM core: Use new async_schedule_dev command

Use the device specific version of the async_schedule commands to defer
various tasks related to power management. By doing this we should see a
slight improvement in performance as any device that is sensitive to
latency/locality in the setup will now be initializing on the node closest
to the device.
Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Reviewed-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c37e20ea
...@@ -727,7 +727,7 @@ void dpm_noirq_resume_devices(pm_message_t state) ...@@ -727,7 +727,7 @@ void dpm_noirq_resume_devices(pm_message_t state)
reinit_completion(&dev->power.completion); reinit_completion(&dev->power.completion);
if (is_async(dev)) { if (is_async(dev)) {
get_device(dev); get_device(dev);
async_schedule(async_resume_noirq, dev); async_schedule_dev(async_resume_noirq, dev);
} }
} }
...@@ -884,7 +884,7 @@ void dpm_resume_early(pm_message_t state) ...@@ -884,7 +884,7 @@ void dpm_resume_early(pm_message_t state)
reinit_completion(&dev->power.completion); reinit_completion(&dev->power.completion);
if (is_async(dev)) { if (is_async(dev)) {
get_device(dev); get_device(dev);
async_schedule(async_resume_early, dev); async_schedule_dev(async_resume_early, dev);
} }
} }
...@@ -1048,7 +1048,7 @@ void dpm_resume(pm_message_t state) ...@@ -1048,7 +1048,7 @@ void dpm_resume(pm_message_t state)
reinit_completion(&dev->power.completion); reinit_completion(&dev->power.completion);
if (is_async(dev)) { if (is_async(dev)) {
get_device(dev); get_device(dev);
async_schedule(async_resume, dev); async_schedule_dev(async_resume, dev);
} }
} }
...@@ -1368,7 +1368,7 @@ static int device_suspend_noirq(struct device *dev) ...@@ -1368,7 +1368,7 @@ static int device_suspend_noirq(struct device *dev)
if (is_async(dev)) { if (is_async(dev)) {
get_device(dev); get_device(dev);
async_schedule(async_suspend_noirq, dev); async_schedule_dev(async_suspend_noirq, dev);
return 0; return 0;
} }
return __device_suspend_noirq(dev, pm_transition, false); return __device_suspend_noirq(dev, pm_transition, false);
...@@ -1571,7 +1571,7 @@ static int device_suspend_late(struct device *dev) ...@@ -1571,7 +1571,7 @@ static int device_suspend_late(struct device *dev)
if (is_async(dev)) { if (is_async(dev)) {
get_device(dev); get_device(dev);
async_schedule(async_suspend_late, dev); async_schedule_dev(async_suspend_late, dev);
return 0; return 0;
} }
...@@ -1835,7 +1835,7 @@ static int device_suspend(struct device *dev) ...@@ -1835,7 +1835,7 @@ static int device_suspend(struct device *dev)
if (is_async(dev)) { if (is_async(dev)) {
get_device(dev); get_device(dev);
async_schedule(async_suspend, dev); async_schedule_dev(async_suspend, dev);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment