lkml.org 
[lkml]   [2022]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 05/10] scsi: ufs-mediatek: Prevent device regulators setting as LPM incorrectly
    Date
    From: Po-Wen Kao <powen.kao@mediatek.com>

    Device regulatrs are allowed to enter low-power mode
    if neither device is not in active mode, nor VCC does not
    keep on.

    Simply fix this by adding conditions before LPM decision.

    Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
    Signed-off-by: Powen Kao <powen.kao@mediatek.com>
    Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
    ---
    drivers/ufs/host/ufs-mediatek.c | 12 ++++++++++--
    1 file changed, 10 insertions(+), 2 deletions(-)

    diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c
    index 3b3fe5470b71..c9afe373437c 100755
    --- a/drivers/ufs/host/ufs-mediatek.c
    +++ b/drivers/ufs/host/ufs-mediatek.c
    @@ -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);
    }
    --
    2.18.0
    \
     
     \ /
      Last update: 2022-06-14 16:17    [W:6.410 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site