Loading drivers/scsi/ufs/ufshcd.c +19 −0 Original line number Diff line number Diff line Loading @@ -9455,10 +9455,29 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) goto clk_scaling_unprepare; } /* * If auto hibern8 is supported then put the link in * hibern8 manually, this is to avoid auto hibern8 * racing during clock frequency scaling sequence. */ if (ufshcd_is_auto_hibern8_supported(hba)) { ret = ufshcd_uic_hibern8_enter(hba); if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; } ret = ufshcd_scale_clks(hba, scale_up); if (ret) goto scale_up_gear; if (ufshcd_is_auto_hibern8_supported(hba)) { ret = ufshcd_uic_hibern8_exit(hba); if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; } /* scale up the gear after scaling up clocks */ if (scale_up) { ret = ufshcd_scale_gear(hba, true); Loading Loading
drivers/scsi/ufs/ufshcd.c +19 −0 Original line number Diff line number Diff line Loading @@ -9455,10 +9455,29 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) goto clk_scaling_unprepare; } /* * If auto hibern8 is supported then put the link in * hibern8 manually, this is to avoid auto hibern8 * racing during clock frequency scaling sequence. */ if (ufshcd_is_auto_hibern8_supported(hba)) { ret = ufshcd_uic_hibern8_enter(hba); if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; } ret = ufshcd_scale_clks(hba, scale_up); if (ret) goto scale_up_gear; if (ufshcd_is_auto_hibern8_supported(hba)) { ret = ufshcd_uic_hibern8_exit(hba); if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; } /* scale up the gear after scaling up clocks */ if (scale_up) { ret = ufshcd_scale_gear(hba, true); Loading