ANDROID: scsi: ufs: Move a clock scaling check

Move a check related to clock scaling into ufshcd_devfreq_scale(). This
patch prepares for adding a second ufshcd_clock_scaling_prepare()
caller.

Bug: 227177294
Change-Id: I928d4cbe64823960a6112ba7f98c18da6244a77c
Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
Bart Van Assche
2022-03-29 13:45:23 -07:00
committed by Todd Kjos
parent aca52cabdb
commit 69014b2b36

View File

@@ -1226,8 +1226,7 @@ static int ufshcd_clock_scaling_prepare(struct ufs_hba *hba)
ufshcd_scsi_block_requests(hba);
down_write(&hba->clk_scaling_lock);
if (!hba->clk_scaling.is_allowed ||
ufshcd_wait_for_doorbell_clr(hba, DOORBELL_CLR_TOUT_US)) {
if (ufshcd_wait_for_doorbell_clr(hba, DOORBELL_CLR_TOUT_US)) {
ret = -EBUSY;
up_write(&hba->clk_scaling_lock);
ufshcd_scsi_unblock_requests(hba);
@@ -1265,10 +1264,18 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up)
int ret = 0;
bool is_writelock = true;
if (!hba->clk_scaling.is_allowed)
return -EBUSY;
ret = ufshcd_clock_scaling_prepare(hba);
if (ret)
return ret;
if (!hba->clk_scaling.is_allowed) {
ret = -EBUSY;
goto out_unprepare;
}
/* scale down the gear before scaling down clocks */
if (!scale_up) {
ret = ufshcd_scale_gear(hba, false);