On Wed, Jul 12, 2017 at 9:57 PM, Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > On Wed, Jul 12, 2017 at 03:05:39AM +0200, Rafael J. Wysocki wrote: >> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> >> >> Commit dc15e71eefc7 (PCI / PM: Restore PME Enable if skipping wakeup >> setup) introduced a mechanism by which the PME Enable bit can be >> restored by pci_enable_wake() if dev->wakeup_prepared is set in >> case it has been overwritten by PCI config space restoration. >> >> However, that commit overlooked the fact that on some systems (Dell >> XPS13 9360 in particular) the AML handling wakeup events checks PME >> Status and PME Enable and it won't trigger a Notify() for devices >> where those bits are not set while it is running. >> >> That happens during resume from suspend-to-idle when pci_restore_state() >> invoked by pci_pm_default_resume_early() clears PME Enable before the >> wakeup events are processed by AML, effectively causing those wakeup >> events to be ignored. >> >> Fix this issue by restoring the PME Enable configuration right after >> pci_restore_state() has been called instead of doing that in >> pci_enable_wake(). >> >> Fixes: dc15e71eefc7 (PCI / PM: Restore PME Enable if skipping wakeup setup) >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > > Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > Since you merged dc15e71eefc7, do you want to merge the fix as well? > Let me know if you'd rather have me take it. I will take this one. Thanks!