On Tue, Sep 26, 2017 at 8:18 AM, Tomas Winkler <tomas.winkler@xxxxxxxxx> wrote: > From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx> > > This patch fixes a regression caused by the new changes > in the "run wake" handlers. > > The mei devices that support D0i3 are no longer receiving an interrupt > after entering runtime suspend state and will stall. > > pci_dev_run_wake function now returns "true" for some devices > (including mei) for which it used to return "false", > arguably incorrectly as "run wake" used to mean that > wakeup signals can be generated for a device in > the working state of the system, so it could not be enabled > or disabled before too. > > MEI maps runtime suspend/resume to its own defined > power gating (PG) states, (D0i3 or other depending on generation), > hence we need to go around the native PCI runtime service which > eventually brings the device into D3cold/hot state, > but the mei devices cannot wake up from D3 unlike from D0i3/PG state, > which keeps irq running. > To get around PCI device native runtime pm, > MEI uses runtime pm domain handlers which take precedence. > > Cc: <stable@xxxxxxxxxxxxxxx> #4.13+ > Cc: Rafael J. Wysocki <rafael@xxxxxxxxxx> > Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx> > Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>