Skip to content
  • Rafael J. Wysocki's avatar
    PCI / PM: Resume runtime-suspended devices later during system suspend · 7cd0602d
    Rafael J. Wysocki authored
    
    
    Runtime-suspended devices are resumed during system suspend by
    pci_pm_prepare() for two reasons: First, because they may need
    to be reprogrammed in order to change their wakeup settings and,
    second, because they may need to be operatonal for their children
    to be successfully suspended.  That is a problem, though, if there
    are many runtime-suspended devices that need to be resumed this
    way during system suspend, because the .prepare() PM callbacks of
    devices are executed sequentially and the times taken by them
    accumulate, which may increase the total system suspend time quite
    a bit.
    
    For this reason, move the resume of runtime-suspended devices up
    to the next phase of device suspend (during system suspend), except
    for the ones that have power.ignore_children set.  The exception is
    made, because the devices with power.ignore_children set may still
    be necessary for their children to be successfully suspended (during
    system suspend) and they won't be resumed automatically as a result
    of the runtime resume of their children.
    
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    7cd0602d