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
Showing the changes to kernel (1 of 7 files). Show all
Unified · Split
| @@ -129,7 +129,7 @@ static int hibernation_test(int level) { return 0; } · 128 unmodified lines | |||
| 129 | static int platform_begin(int platform_mode) | 129 | static int platform_begin(int platform_mode) |
| 130 | { | 130 | { |
| 131 | return (platform_mode && hibernation_ops) ? | 131 | return (platform_mode && hibernation_ops) ? |
| 132 | hibernation_ops->begin() : 0; | 132 | hibernation_ops->begin(PMSG_FREEZE) : 0; |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | /** | 135 | /** |
| @@ -542,7 +542,7 @@ int hibernation_platform_enter(void) · 406 unmodified lines | |||
| 542 | * hibernation_ops->finish() before saving the image, so we should let | 542 | * hibernation_ops->finish() before saving the image, so we should let |
| 543 | * the firmware know that we're going to enter the sleep state after all | 543 | * the firmware know that we're going to enter the sleep state after all |
| 544 | */ | 544 | */ |
| 545 | error = hibernation_ops->begin(); | 545 | error = hibernation_ops->begin(PMSG_HIBERNATE); |
| 546 | if (error) | 546 | if (error) |
| 547 | goto Close; | 547 | goto Close; |
| 548 | 548 | ||