Hi,
When scale gear, use ufshcd_config_pwr_mode() instead of
ufshcd_change_power_mode() so that
vops_pwr_change_notify(PRE_CHANGE)
can be utilized to allow vendors use customized settings before change
the power mode.
Signed-off-by: Can Guo <cang@xxxxxxxxxxxxxx>
---
drivers/scsi/ufs/ufshcd.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index adcce41..67bd4f2 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -1059,8 +1059,7 @@ static int ufshcd_scale_gear(struct ufs_hba *hba,
bool scale_up)
}
/* check if the power mode needs to be changed or not? */
- ret = ufshcd_change_power_mode(hba, &new_pwr_info);
-
+ ret = ufshcd_config_pwr_mode(hba, &new_pwr_info);
You might want to inform ufshcd_config_pwr_mode() of the caller,
As now it will be called much more frequently, and you want/don't want
To call your vops on probe but not on scale_gear?
Also, Alim exported ufshcd_config_pwr_mode a while ago,
In commit 0d846e703dc8 "scsi: ufs: make ufshcd_config_pwr_mode of
non-static func"),
But nobody uses it outside ufshcd - so maybe revert this commit as
part of this series?
if (ret)
dev_err(hba->dev, "%s: failed err %d, old gear: (tx %d rx %d), new
gear: (tx %d rx %d)",
__func__, ret,
@@ -4126,8 +4125,6 @@ int ufshcd_config_pwr_mode(struct ufs_hba *hba,
memcpy(&final_params, desired_pwr_mode, sizeof(final_params));
ret = ufshcd_change_power_mode(hba, &final_params);
- if (!ret)
- ufshcd_print_pwr_info(hba);
return ret;
}
@@ -7157,6 +7154,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba,
bool async)
__func__, ret);
goto out;
}
+ ufshcd_print_pwr_info(hba);
}
/* set the state as operational after switching to desired gear */
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
Forum,
a Linux Foundation Collaborative Project