diff mbox series

[v1,1/1] scsi: ufs: Keep UFS regulators on when autobkops enabled

Message ID 6fd8e4d88eb331c9f04c74a3581593961f2caf73.1603747748.git.asutoshd@codeaurora.org
State New
Headers show
Series [v1,1/1] scsi: ufs: Keep UFS regulators on when autobkops enabled | expand

Commit Message

Asutosh Das (asd) Oct. 26, 2020, 9:31 p.m. UTC
From: "Bao D. Nguyen" <nguyenb@codeaurora.org>

When bkops is enabled, the UFS device may do bkops during suspend.
With bkops enabled during suspend, keep the regulators
in active operation configuration, allowing the device to draw
high power to support bkops and avoid over current event.

Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
---
 drivers/scsi/ufs/ufshcd.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Stanley Chu Oct. 27, 2020, 2:14 a.m. UTC | #1
Hi,

On Mon, 2020-10-26 at 14:31 -0700, Asutosh Das wrote:
> From: "Bao D. Nguyen" <nguyenb@codeaurora.org>

> 

> When bkops is enabled, the UFS device may do bkops during suspend.

> With bkops enabled during suspend, keep the regulators

> in active operation configuration, allowing the device to draw

> high power to support bkops and avoid over current event.

> 

> Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>

> Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>

> ---

>  drivers/scsi/ufs/ufshcd.c | 4 +++-

>  1 file changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c

> index 47c544d..a94543c 100644

> --- a/drivers/scsi/ufs/ufshcd.c

> +++ b/drivers/scsi/ufs/ufshcd.c

> @@ -8523,7 +8523,9 @@ static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)

>  	if (ret)

>  		goto set_dev_active;

>  

> -	ufshcd_vreg_set_lpm(hba);

> +	/* Device may perform bkops if autobkops is enabled */

> +	if (!hba->auto_bkops_enabled)

> +		ufshcd_vreg_set_lpm(hba);


If auto bkops is allowed and enabled during runtime suspend (currently
auto bkops is allow in runtime suspend only, and not allowed in system
suspend), hba->dev_info.b_rpm_dev_flush_capable would be true and keep
the current device power mode, say Active Power Mode. In this case,
regulator would not be set as lpm mode by ufshcd_vreg_set_lpm().

Please correct me if I was wrong.

Thanks,
Stanley Chu
diff mbox series

Patch

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 47c544d..a94543c 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -8523,7 +8523,9 @@  static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
 	if (ret)
 		goto set_dev_active;
 
-	ufshcd_vreg_set_lpm(hba);
+	/* Device may perform bkops if autobkops is enabled */
+	if (!hba->auto_bkops_enabled)
+		ufshcd_vreg_set_lpm(hba);
 
 disable_clks:
 	/*