[v4,4/9] bus: mhi: core: Trigger a host resume when device vote is requested

Message ID 1593448782-8385-5-git-send-email-bbhatt@codeaurora.org
State New
Headers show
Series
  • Introduce features and debugfs/sysfs entries for MHI
Related show

Commit Message

Bhaumik Bhatt June 29, 2020, 4:39 p.m.
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.

Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
---
 drivers/bus/mhi/core/pm.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Manivannan Sadhasivam July 4, 2020, 2:56 p.m. | #1
On Mon, Jun 29, 2020 at 09:39:37AM -0700, Bhaumik Bhatt wrote:
> 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.

> 

> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>


Remove the term 'vote' from the commit subject, it doesn't seem right. How about
"Trigger host resume if already suspended during mhi_device_get()"? With that
fixed,

Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>


Thanks,
Mani

> ---

>  drivers/bus/mhi/core/pm.c | 3 +++

>  1 file changed, 3 insertions(+)

> 

> diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c

> index 5e3994e..74c5cb1 100644

> --- a/drivers/bus/mhi/core/pm.c

> +++ b/drivers/bus/mhi/core/pm.c

> @@ -1115,6 +1115,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, false);

> +

>  	mhi_cntrl->wake_get(mhi_cntrl, true);

>  	read_unlock_bh(&mhi_cntrl->pm_lock);

>  }

> -- 

> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> a Linux Foundation Collaborative Project

>

Patch

diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c
index 5e3994e..74c5cb1 100644
--- a/drivers/bus/mhi/core/pm.c
+++ b/drivers/bus/mhi/core/pm.c
@@ -1115,6 +1115,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, false);
+
 	mhi_cntrl->wake_get(mhi_cntrl, true);
 	read_unlock_bh(&mhi_cntrl->pm_lock);
 }