Loading drivers/scsi/ufs/ufshcd.c +10 −0 Original line number Diff line number Diff line Loading @@ -10239,7 +10239,15 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) * racing during clock frequency scaling sequence. */ if (ufshcd_is_auto_hibern8_supported(hba)) { /* * Scaling prepare acquires the rw_sem: lock * h8 may sleep in case of errors. * e.g. link_recovery. Hence, release the rw_sem * before hibern8. */ up_write(&hba->lock); ret = ufshcd_uic_hibern8_enter(hba); down_write(&hba->lock); if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; Loading Loading @@ -10370,6 +10378,8 @@ static ssize_t ufshcd_clkscale_enable_store(struct device *dev, hba->clk_scaling.is_allowed = value; flush_work(&hba->eh_work); if (value) { ufshcd_resume_clkscaling(hba); } else { Loading Loading
drivers/scsi/ufs/ufshcd.c +10 −0 Original line number Diff line number Diff line Loading @@ -10239,7 +10239,15 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up) * racing during clock frequency scaling sequence. */ if (ufshcd_is_auto_hibern8_supported(hba)) { /* * Scaling prepare acquires the rw_sem: lock * h8 may sleep in case of errors. * e.g. link_recovery. Hence, release the rw_sem * before hibern8. */ up_write(&hba->lock); ret = ufshcd_uic_hibern8_enter(hba); down_write(&hba->lock); if (ret) /* link will be bad state so no need to scale_up_gear */ return ret; Loading Loading @@ -10370,6 +10378,8 @@ static ssize_t ufshcd_clkscale_enable_store(struct device *dev, hba->clk_scaling.is_allowed = value; flush_work(&hba->eh_work); if (value) { ufshcd_resume_clkscaling(hba); } else { Loading