mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
Merge tag 'pm-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fixes from Rafael Wysocki:
"These fix three issues in the system-wide suspend and hibernation area
related to PCI device PM handling by suspend-to-idle, device wakeup
optimizations and arbitrary differences between suspend and
hiberantion.
Specifics:
- Modify the PCI bus type's PM code to avoid putting devices left by
their drivers in D0 on purpose during suspend to idle into
low-power states as doing that may confuse the system resume
callbacks of the drivers in question (Rafael Wysocki).
- Avoid checking ACPI wakeup configuration during system-wide suspend
for suspended devices that do not use ACPI-based wakeup to allow
them to stay in suspend more often (Rafael Wysocki).
- The last phase of hibernation is analogous to system-wide suspend
also because on platforms with ACPI it passes control to the
platform firmware to complete the transision, so make it indicate
that by calling pm_set_suspend_via_firmware() to allow the drivers
that care about this to do the right thing (Rafael Wysocki)"
* tag 'pm-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
PCI: PM: Avoid possible suspend-to-idle issue
ACPI: PM: Call pm_set_suspend_via_firmware() during hibernation
ACPI/PCI: PM: Add missing wakeup.flags.valid checks
This commit is contained in:
@@ -129,7 +129,7 @@ static int hibernation_test(int level) { return 0; }
|
||||
static int platform_begin(int platform_mode)
|
||||
{
|
||||
return (platform_mode && hibernation_ops) ?
|
||||
hibernation_ops->begin() : 0;
|
||||
hibernation_ops->begin(PMSG_FREEZE) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -542,7 +542,7 @@ int hibernation_platform_enter(void)
|
||||
* hibernation_ops->finish() before saving the image, so we should let
|
||||
* the firmware know that we're going to enter the sleep state after all
|
||||
*/
|
||||
error = hibernation_ops->begin();
|
||||
error = hibernation_ops->begin(PMSG_HIBERNATE);
|
||||
if (error)
|
||||
goto Close;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user