From: Bhaumik Bhatt Date: Tue, 29 Sep 2020 17:52:04 +0000 (+0530) Subject: bus: mhi: core: Trigger host resume if suspended during mhi_device_get() X-Git-Tag: v5.10-rc1~124^2~77 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=870f81bd28f20e1b2290d83db9fe93ea8f52ba63;p=thirdparty%2Flinux.git bus: mhi: core: Trigger host resume if suspended during mhi_device_get() It is possible that the host may be suspending or suspended and may not allow an outgoing device wake assert immediately if a client has requested for it. Ensure that the host wakes up and allows for it so the client does not have to wait for an external trigger or an outgoing packet to be queued for the host resume to occur. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bhaumik Bhatt Signed-off-by: Manivannan Sadhasivam Link: https://lore.kernel.org/r/20200929175218.8178-6-manivannan.sadhasivam@linaro.org Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c index b227d415e937a..27bb471c8f4eb 100644 --- a/drivers/bus/mhi/core/pm.c +++ b/drivers/bus/mhi/core/pm.c @@ -1112,6 +1112,9 @@ void mhi_device_get(struct mhi_device *mhi_dev) mhi_dev->dev_wake++; read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + mhi_cntrl->wake_get(mhi_cntrl, true); read_unlock_bh(&mhi_cntrl->pm_lock); }