Commit 907deab2 authored by Alexander Usyskin's avatar Alexander Usyskin Committed by Rodrigo Vivi

mei: mei-me: resume device in prepare

Asynchronous runtime resume is not possible while the system
is suspending.
The power management subsystem resumes the device only in the
suspend phase, not in the prepare phase.
Force resume device in prepare to allow drivers on mei bus
to communicate in their prepare callbacks.
Signed-off-by: default avatarAlexander Usyskin <alexander.usyskin@intel.com>
Reviewed-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarAlan Previn <alan.previn.teres.alexis@intel.com>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230125082637.118970-2-alan.previn.teres.alexis@intel.com
parent 220b3376
......@@ -340,6 +340,12 @@ static void mei_me_remove(struct pci_dev *pdev)
}
#ifdef CONFIG_PM_SLEEP
static int mei_me_pci_prepare(struct device *device)
{
pm_runtime_resume(device);
return 0;
}
static int mei_me_pci_suspend(struct device *device)
{
struct pci_dev *pdev = to_pci_dev(device);
......@@ -396,7 +402,17 @@ static int mei_me_pci_resume(struct device *device)
return 0;
}
#endif /* CONFIG_PM_SLEEP */
static void mei_me_pci_complete(struct device *device)
{
pm_runtime_suspend(device);
}
#else /* CONFIG_PM_SLEEP */
#define mei_me_pci_prepare NULL
#define mei_me_pci_complete NULL
#endif /* !CONFIG_PM_SLEEP */
#ifdef CONFIG_PM
static int mei_me_pm_runtime_idle(struct device *device)
......@@ -499,6 +515,8 @@ static inline void mei_me_unset_pm_domain(struct mei_device *dev)
}
static const struct dev_pm_ops mei_me_pm_ops = {
.prepare = mei_me_pci_prepare,
.complete = mei_me_pci_complete,
SET_SYSTEM_SLEEP_PM_OPS(mei_me_pci_suspend,
mei_me_pci_resume)
SET_RUNTIME_PM_OPS(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment