mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge branches 'pm-runtime' and 'pm-sleep'
* pm-runtime: PM / Runtime: Update runtime_idle() documentation for return value meaning * pm-sleep: PM / sleep: Correct whitespace errors in <linux/pm.h> PM: Add missing "freeze" state PM / Hibernate: Spelling s/anonymouns/anonymous/ PM / Runtime: Add missing "it" in comment PM / suspend: Remove unnecessary !! PCI / PM: Resume runtime-suspended devices later during system suspend ACPI / PM: Resume runtime-suspended devices later during system suspend PM / sleep: Set pm_generic functions to NULL for !CONFIG_PM_SLEEP PM: fix typo in comment PM / hibernate: use name_to_dev_t to parse resume PM / wakeup: Include appropriate header file in kernel/power/wakelock.c PM / sleep: Move prototype declaration to header file kernel/power/power.h PM / sleep: Asynchronous threads for suspend_late PM / sleep: Asynchronous threads for suspend_noirq PM / sleep: Asynchronous threads for resume_early PM / sleep: Asynchronous threads for resume_noirq PM / sleep: Two flags for async suspend_noirq and suspend_late
This commit is contained in:
commit
36cc86e8ec
12 changed files with 354 additions and 106 deletions
|
|
@ -901,14 +901,29 @@ EXPORT_SYMBOL_GPL(acpi_dev_resume_early);
|
|||
int acpi_subsys_prepare(struct device *dev)
|
||||
{
|
||||
/*
|
||||
* Follow PCI and resume devices suspended at run time before running
|
||||
* their system suspend callbacks.
|
||||
* Devices having power.ignore_children set may still be necessary for
|
||||
* suspending their children in the next phase of device suspend.
|
||||
*/
|
||||
pm_runtime_resume(dev);
|
||||
if (dev->power.ignore_children)
|
||||
pm_runtime_resume(dev);
|
||||
|
||||
return pm_generic_prepare(dev);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_subsys_prepare);
|
||||
|
||||
/**
|
||||
* acpi_subsys_suspend - Run the device driver's suspend callback.
|
||||
* @dev: Device to handle.
|
||||
*
|
||||
* Follow PCI and resume devices suspended at run time before running their
|
||||
* system suspend callbacks.
|
||||
*/
|
||||
int acpi_subsys_suspend(struct device *dev)
|
||||
{
|
||||
pm_runtime_resume(dev);
|
||||
return pm_generic_suspend(dev);
|
||||
}
|
||||
|
||||
/**
|
||||
* acpi_subsys_suspend_late - Suspend device using ACPI.
|
||||
* @dev: Device to suspend.
|
||||
|
|
@ -937,6 +952,23 @@ int acpi_subsys_resume_early(struct device *dev)
|
|||
return ret ? ret : pm_generic_resume_early(dev);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_subsys_resume_early);
|
||||
|
||||
/**
|
||||
* acpi_subsys_freeze - Run the device driver's freeze callback.
|
||||
* @dev: Device to handle.
|
||||
*/
|
||||
int acpi_subsys_freeze(struct device *dev)
|
||||
{
|
||||
/*
|
||||
* This used to be done in acpi_subsys_prepare() for all devices and
|
||||
* some drivers may depend on it, so do it here. Ideally, however,
|
||||
* runtime-suspended devices should not be touched during freeze/thaw
|
||||
* transitions.
|
||||
*/
|
||||
pm_runtime_resume(dev);
|
||||
return pm_generic_freeze(dev);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
static struct dev_pm_domain acpi_general_pm_domain = {
|
||||
|
|
@ -947,8 +979,11 @@ static struct dev_pm_domain acpi_general_pm_domain = {
|
|||
#endif
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.prepare = acpi_subsys_prepare,
|
||||
.suspend = acpi_subsys_suspend,
|
||||
.suspend_late = acpi_subsys_suspend_late,
|
||||
.resume_early = acpi_subsys_resume_early,
|
||||
.freeze = acpi_subsys_freeze,
|
||||
.poweroff = acpi_subsys_suspend,
|
||||
.poweroff_late = acpi_subsys_suspend_late,
|
||||
.restore_early = acpi_subsys_resume_early,
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue