Message ID | 6fd8e4d88eb331c9f04c74a3581593961f2caf73.1603747748.git.asutoshd@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1,1/1] scsi: ufs: Keep UFS regulators on when autobkops enabled | expand |
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 --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: /*