On Thu, Aug 16, 2018 at 12:56:46PM +0200, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > > Commit 26112ddc254c (PCI / ACPI / PM: Resume bridges w/o drivers on > suspend-to-RAM) attempted to fix a functional regression resulting > from commit c62ec4610c40 (PM / core: Fix direct_complete handling > for devices with no callbacks) by resuming PCI bridges without > drivers (that is, "parallel PCI" ones) during system-wide suspend if > the target system state is not ACPI S0 (working state). > > That turns out insufficient, however, as it is reported that, at > least in one case, the platform firmware gets confused if a PCIe > root port is suspended before entering the ACPI S3 sleep state. > > For this reason, drop the driver check from acpi_pci_need_resume() > and resume all bridges (including PCIe ports with drivers) during > system-wide suspend if the target system state is not ACPI S0. > > [If the target system state is ACPI S0, it means suspend-to-idle > and the platform firmware is not going to be invoked to actually > suspend the system, so there is no need to resume the bridges in > that case.] > > Fixes: c62ec4610c40 (PM / core: Fix direct_complete handling for devices with no callbacks) > Reported-by: teika kazura <teika@xxxxxxx> > Tested-by: teika kazura <teika@xxxxxxx> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=200675 > Cc: 4.15+ <stable@xxxxxxxxxxxxxxx> # 4.15+: 26112ddc254c (PCI / ACPI / PM: Resume bridges ...) > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>