scsi: ufs: ufs-mediatek: Prevent device regulators setting LPM incorrectly
Device regulatrs are allowed to enter low-power mode if neither device is not in active mode, nor VCC does not keep on. Fix this by adding conditions before LPM decision. Link: https://lore.kernel.org/r/20220616053725.5681-6-stanley.chu@mediatek.com Reviewed-by: Stanley Chu <stanley.chu@mediatek.com> Signed-off-by: Po-Wen Kao <powen.kao@mediatek.com> Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
3fd23b8dfb
commit
005ffdf09c
@ -1034,10 +1034,18 @@ static void ufs_mtk_vreg_set_lpm(struct ufs_hba *hba, bool lpm)
|
||||
if (!hba->vreg_info.vccq2 || !hba->vreg_info.vcc)
|
||||
return;
|
||||
|
||||
if (lpm && !hba->vreg_info.vcc->enabled)
|
||||
/* Bypass LPM when device is still active */
|
||||
if (lpm && ufshcd_is_ufs_dev_active(hba))
|
||||
return;
|
||||
|
||||
/* Bypass LPM if VCC is enabled */
|
||||
if (lpm && hba->vreg_info.vcc->enabled)
|
||||
return;
|
||||
|
||||
if (lpm)
|
||||
regulator_set_mode(hba->vreg_info.vccq2->reg,
|
||||
REGULATOR_MODE_IDLE);
|
||||
else if (!lpm)
|
||||
else
|
||||
regulator_set_mode(hba->vreg_info.vccq2->reg,
|
||||
REGULATOR_MODE_NORMAL);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user