Re: [char-misc 01/02 v2] mei: always use domain runtime pm callbacks.

From: Rafael J. Wysocki
Date: Tue Sep 26 2017 - 11:18:05 EST


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>