On Mon, 12 Jan 2015, Rafael J. Wysocki wrote:
On Thursday, January 08, 2015 10:51:06 AM Alan Stern wrote:
quoted
On Thu, 8 Jan 2015, Rafael J. Wysocki wrote:
quoted
From: Rafael J. Wysocki <redacted>
Commit f25c0ae2b4c4 (ACPI / PM: Avoid resuming devices in ACPI PM
domain during system suspend) modified the ACPI PM domain's system
suspend callbacks to allow devices attached to it to be left in the
runtime-suspended state during system suspend so as to optimize
the suspend process.
This was based on the general mechanism introduced by commit
aae4518b3124 (PM / sleep: Mechanism to avoid resuming runtime-suspended
devices unnecessarily).
Extend that approach to PCI devices by modifying the PCI bus type's
->prepare callback to return 1 for devices that are runtime-suspended
when it is being executed and that are in a suitable power state and
need not be resumed going forward.
Does this correctly handle PCI devices that aren't included in the ACPI
tables? For example, add-on PCI cards?
Well, it would if it took the case when a device was configured for remote
wakeup at run time but was not supposed to wakeup the system from sleep into
account.
That needs to be checked in pci_dev_keep_suspended() rather than in the platform
callback to cover all devices.
Updated patch follows.
Rafael
This looks better, thank you.
Alan Stern