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