diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c index 009031fee744..0622b7b32e51 100644 --- a/drivers/ufs/host/ufs-mediatek.c +++ b/drivers/ufs/host/ufs-mediatek.c @@ -1774,9 +1774,11 @@ static int ufs_mtk_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op, ufs_mtk_sram_pwr_ctrl(false, res); - /* Release pm_qos if in scale-up mode during suspend */ - if (ufshcd_is_clkscaling_supported(hba) && (host->clk_scale_up)) + /* Release pm_qos/clk if in scale-up mode during suspend */ + if (ufshcd_is_clkscaling_supported(hba) && (host->clk_scale_up)) { ufshcd_pm_qos_update(hba, false); + _ufs_mtk_clk_scale(hba, false); + } return 0; fail: @@ -1804,9 +1806,11 @@ static int ufs_mtk_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) if (err) goto fail; - /* Request pm_qos if in scale-up mode after resume */ - if (ufshcd_is_clkscaling_supported(hba) && (host->clk_scale_up)) + /* Request pm_qos/clk if in scale-up mode after resume */ + if (ufshcd_is_clkscaling_supported(hba) && (host->clk_scale_up)) { ufshcd_pm_qos_update(hba, true); + _ufs_mtk_clk_scale(hba, true); + } if (ufshcd_is_link_hibern8(hba)) { err = ufs_mtk_link_set_hpm(hba);