diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 6780a36d7714..eed086a90118 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -7559,6 +7559,15 @@ out: static void ufshcd_vreg_set_lpm(struct ufs_hba *hba) { + /* + * It seems some UFS devices may keep drawing more than sleep current + * (atleast for 500us) from UFS rails (especially from VCCQ rail). + * To avoid this situation, add 2ms delay before putting these UFS + * rails in LPM mode. + */ + if (!ufshcd_is_link_active(hba)) + usleep_range(2000, 2100); + /* * If UFS device is either in UFS_Sleep turn off VCC rail to save some * power.