> > From: Alexander Usyskin <alexander.usys...@intel.com> > > MEI device performs link reset during system suspend sequence. > The link reset cannot be performed while device is in runtime suspend state. > The resume sequence is bypassed with suspend direct complete > optimization,so the optimization should be disabled for mei devices. > > Fixes: > [ 192.940537] Restarting tasks ... > [ 192.940610] PGI is not set > [ 192.940619] ------------[ cut here ]------------ [ 192.940623] > WARNING: CPU: 0 > me.c:653 mei_me_pg_exit_sync+0x351/0x360 [ 192.940624] Modules linked > in: > [ 192.940627] CPU: 0 PID: 1661 Comm: kworker/0:3 Not tainted 4.13.0-rc2+ > #2 [ 192.940628] Hardware name: Dell Inc. XPS 13 9343/0TM99H, BIOS > A11 > 12/08/2016 [ 192.940630] Workqueue: pm pm_runtime_work <snip> [ > 192.940642] Call Trace: > [ 192.940646] ? pci_pme_active+0x1de/0x1f0 [ 192.940649] ? > pci_restore_standard_config+0x50/0x50 > [ 192.940651] ? kfree+0x172/0x190 > [ 192.940653] ? kfree+0x172/0x190 > [ 192.940655] ? pci_restore_standard_config+0x50/0x50 > [ 192.940663] mei_me_pm_runtime_resume+0x3f/0xc0 > [ 192.940665] pci_pm_runtime_resume+0x7a/0xa0 [ 192.940667] > __rpm_callback+0xb9/0x1e0 [ 192.940668] ? > preempt_count_add+0x6d/0xc0 [ 192.940670] rpm_callback+0x24/0x90 [ > 192.940672] ? pci_restore_standard_config+0x50/0x50 > [ 192.940674] rpm_resume+0x4e8/0x800 [ 192.940676] > pm_runtime_work+0x55/0xb0 [ 192.940678] > process_one_work+0x184/0x3e0 [ 192.940680] > worker_thread+0x4d/0x3a0 [ 192.940681] ? > preempt_count_sub+0x9b/0x100 [ 192.940683] > kthread+0x122/0x140 [ 192.940684] ? process_one_work+0x3e0/0x3e0 [ > 192.940685] ? __kthread_create_on_node+0x1a0/0x1a0 > [ 192.940688] ret_from_fork+0x27/0x40 [ 192.940690] Code: 96 3a 9e ff 48 > 8b 7d 98 e8 cd 21 58 00 83 bb bc 01 00 00 > 04 0f 85 40 fe ff ff e9 41 fe ff ff 48 c7 c7 5f 04 99 96 e8 93 6b 9f ff > <0f> ff e9 > 5d fd ff ff e8 33 fe 99 ff 0f 1f 00 0f 1f 44 00 00 55 [ 192.940719] ---[ > end trace > a86955597774ead8 ]--- [ 192.942540] done. > > Suggested-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > Reported-by: Dominik Brodowski <li...@dominikbrodowski.net> > Cc: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > Cc: Dominik Brodowski <li...@dominikbrodowski.net> > Signed-off-by: Alexander Usyskin <alexander.usys...@intel.com> > Signed-off-by: Tomas Winkler <tomas.wink...@intel.com> > ---
Hi Greg Sorry for wring tagging this should go to 4. 13 Dominik can you check and ACK this patch? Thanks Tomas > drivers/misc/mei/pci-me.c | 6 ++++++ > drivers/misc/mei/pci-txe.c | 6 ++++++ > 2 files changed, 12 insertions(+) > > diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c index > 3f4e36b8892f..4ff40d319676 100644 > --- a/drivers/misc/mei/pci-me.c > +++ b/drivers/misc/mei/pci-me.c > @@ -220,6 +220,12 @@ static int mei_me_probe(struct pci_dev *pdev, > const struct pci_device_id *ent) > pci_set_drvdata(pdev, dev); > > /* > + * MEI requires to resume from runtime suspend mode > + * in order to perform link reset flow upon system suspend. > + */ > + pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME; > + > + /* > * For not wake-able HW runtime pm framework > * can't be used on pci device level. > * Use domain runtime pm callbacks instead. > diff --git a/drivers/misc/mei/pci-txe.c b/drivers/misc/mei/pci-txe.c index > f811cd524468..e38a5f144373 100644 > --- a/drivers/misc/mei/pci-txe.c > +++ b/drivers/misc/mei/pci-txe.c > @@ -138,6 +138,12 @@ static int mei_txe_probe(struct pci_dev *pdev, > const struct pci_device_id *ent) > pci_set_drvdata(pdev, dev); > > /* > + * MEI requires to resume from runtime suspend mode > + * in order to perform link reset flow upon system suspend. > + */ > + pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME; > + > + /* > * For not wake-able HW runtime pm framework > * can't be used on pci device level. > * Use domain runtime pm callbacks instead. > -- > 2.9.4