linux/drivers/misc/mei
Alexander Usyskin b42dc0635b mei: always use domain runtime pm callbacks.
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@vger.kernel.org> #4.13+
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-10-04 11:25:09 +02:00
..
bus-fixup.c mei: bus: elminate variable length arrays 2017-04-08 17:38:25 +02:00
bus.c mei: make device_type const 2017-08-28 11:59:39 +02:00
client.c mei: drop amthif internal client 2017-04-08 17:38:25 +02:00
client.h mei: drop amthif internal client 2017-04-08 17:38:25 +02:00
debugfs.c Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
hbm.c mei: hbm: remove variable length arrays 2017-04-08 17:38:25 +02:00
hbm.h mei: me: d0i3: add d0i3 enter/exit state machine 2015-08-03 17:33:55 -07:00
hw-me-regs.h mei: me: add lewisburg device ids 2016-11-29 20:15:30 +01:00
hw-me.c mei: me: use an index instead of a pointer for private data 2017-07-17 15:07:39 +02:00
hw-me.h mei: me: use an index instead of a pointer for private data 2017-07-17 15:07:39 +02:00
hw-txe-regs.h mei: extract fw status registers 2014-05-03 19:21:22 -04:00
hw-txe.c mei: simplify error handling via devres function. 2017-01-31 11:08:18 +01:00
hw-txe.h mei: simplify error handling via devres function. 2017-01-31 11:08:18 +01:00
hw.h mei: hw: fix a spelling mistake 2017-05-25 18:24:03 +02:00
init.c mei: drop unreachable code in mei_start 2017-06-13 15:46:18 +02:00
interrupt.c mei: validate the message header only in first fragment. 2017-06-13 15:46:18 +02:00
Kconfig mei: wd: drop the watchdog code from the core mei driver 2016-02-06 22:11:06 -08:00
main.c mei: implement fsync 2017-04-08 17:38:25 +02:00
Makefile mei: drop amthif internal client 2017-04-08 17:38:25 +02:00
mei_dev.h mei: make mei_cl_bus_rescan static 2017-05-25 18:24:03 +02:00
mei-trace.c mei: trace pci configuration space io 2016-02-07 13:00:52 -08:00
mei-trace.h mei: drop superfluous closing bracket from write traces 2016-02-07 14:47:20 -08:00
pci-me.c mei: always use domain runtime pm callbacks. 2017-10-04 11:25:09 +02:00
pci-txe.c mei: always use domain runtime pm callbacks. 2017-10-04 11:25:09 +02:00