forked from Minki/linux
scsi: ufs: change device rails hpm mode ramp up sequence
When we are resuming the UFS device rails in HPM mode, we are first powering on the VCC rail while VCCQ and VCCQ2 rails still being in LPM mode. Some UFS devices may take VCC on event as hint that host wants UFS device to be resumed and may start drawing more power from the VCCQ/VCCQ2 rails (while they are still in LPM mode) causing voltage drop on these rails. This change fixes this issue by bringing VCCQ & VCCQ2 rails out of LPM before powering on VCC rail. Reviewed-by: Venkat Gopalakrishnan <venkatg@codeaurora.org> Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
d6fcf81a0d
commit
69d72ac836
@ -5819,7 +5819,6 @@ static int ufshcd_vreg_set_hpm(struct ufs_hba *hba)
|
||||
!hba->dev_info.is_lu_power_on_wp) {
|
||||
ret = ufshcd_setup_vreg(hba, true);
|
||||
} else if (!ufshcd_is_ufs_dev_active(hba)) {
|
||||
ret = ufshcd_toggle_vreg(hba->dev, hba->vreg_info.vcc, true);
|
||||
if (!ret && !ufshcd_is_link_active(hba)) {
|
||||
ret = ufshcd_config_vreg_hpm(hba, hba->vreg_info.vccq);
|
||||
if (ret)
|
||||
@ -5828,6 +5827,7 @@ static int ufshcd_vreg_set_hpm(struct ufs_hba *hba)
|
||||
if (ret)
|
||||
goto vccq_lpm;
|
||||
}
|
||||
ret = ufshcd_toggle_vreg(hba->dev, hba->vreg_info.vcc, true);
|
||||
}
|
||||
goto out;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user