HI Stanley On Wed, Jan 29, 2020 at 1:09 PM Stanley Chu <stanley.chu@xxxxxxxxxxxx> wrote: > > MediaTek Chipsets can enter proprietary UniPro low-power mode during > suspend while link is in hibern8 state. Make sure leaving low-power > mode before every link startup to prevent lockup in any possible error recovery > path. > > In the same time, re-factor related funcitons to improve code readability. > > Signed-off-by: Stanley Chu <stanley.chu@xxxxxxxxxxxx> Reviewed-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> > --- > drivers/scsi/ufs/ufs-mediatek.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c > index 53eae5fe2ade..7ac838cc15d1 100644 > --- a/drivers/scsi/ufs/ufs-mediatek.c > +++ b/drivers/scsi/ufs/ufs-mediatek.c > @@ -30,6 +30,11 @@ > #define ufs_mtk_device_reset_ctrl(high, res) \ > ufs_mtk_smc(UFS_MTK_SIP_DEVICE_RESET, high, res) > > +#define ufs_mtk_unipro_powerdown(hba, powerdown) \ > + ufshcd_dme_set(hba, \ > + UIC_ARG_MIB_SEL(VS_UNIPROPOWERDOWNCONTROL, 0), \ > + powerdown) > + > static void ufs_mtk_cfg_unipro_cg(struct ufs_hba *hba, bool enable) > { > u32 tmp; > @@ -290,6 +295,8 @@ static int ufs_mtk_pre_link(struct ufs_hba *hba) > int ret; > u32 tmp; > > + ufs_mtk_unipro_powerdown(hba, 0); > + > /* disable deep stall */ > ret = ufshcd_dme_get(hba, UIC_ARG_MIB(VS_SAVEPOWERCONTROL), &tmp); > if (ret) > @@ -390,9 +397,7 @@ static int ufs_mtk_link_set_hpm(struct ufs_hba *hba) > if (err) > return err; > > - err = ufshcd_dme_set(hba, > - UIC_ARG_MIB_SEL(VS_UNIPROPOWERDOWNCONTROL, 0), > - 0); > + err = ufs_mtk_unipro_powerdown(hba, 0); > if (err) > return err; > > @@ -413,14 +418,10 @@ static int ufs_mtk_link_set_lpm(struct ufs_hba *hba) > { > int err; > > - err = ufshcd_dme_set(hba, > - UIC_ARG_MIB_SEL(VS_UNIPROPOWERDOWNCONTROL, 0), > - 1); > + err = ufs_mtk_unipro_powerdown(hba, 1); > if (err) { > /* Resume UniPro state for following error recovery */ > - ufshcd_dme_set(hba, > - UIC_ARG_MIB_SEL(VS_UNIPROPOWERDOWNCONTROL, 0), > - 0); > + ufs_mtk_unipro_powerdown(hba, 0); > return err; > } > > -- > 2.18.0 -- Regards, Alim