lkml.org 
[lkml]   [2020]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 027/168] drm/msm/dsi: save pll state before dsi host is powered off
    Date
    From: Harigovindan P <harigovi@codeaurora.org>

    [ Upstream commit a1028dcfd0dd97884072288d0c8ed7f30399b528 ]

    Save pll state before dsi host is powered off. Without this change
    some register values gets resetted.

    Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/msm/dsi/dsi_manager.c | 5 +++++
    drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 ----
    2 files changed, 5 insertions(+), 4 deletions(-)

    diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
    index 355a60b4a536f..73127948f54d9 100644
    --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
    +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
    @@ -479,6 +479,7 @@ static void dsi_mgr_bridge_post_disable(struct drm_bridge *bridge)
    struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1);
    struct mipi_dsi_host *host = msm_dsi->host;
    struct drm_panel *panel = msm_dsi->panel;
    + struct msm_dsi_pll *src_pll;
    bool is_dual_dsi = IS_DUAL_DSI();
    int ret;

    @@ -519,6 +520,10 @@ static void dsi_mgr_bridge_post_disable(struct drm_bridge *bridge)
    id, ret);
    }

    + /* Save PLL status if it is a clock source */
    + src_pll = msm_dsi_phy_get_pll(msm_dsi->phy);
    + msm_dsi_pll_save_state(src_pll);
    +
    ret = msm_dsi_host_power_off(host);
    if (ret)
    pr_err("%s: host %d power off failed,%d\n", __func__, id, ret);
    diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
    index 3522863a4984f..21519229fe73a 100644
    --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
    +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
    @@ -724,10 +724,6 @@ void msm_dsi_phy_disable(struct msm_dsi_phy *phy)
    if (!phy || !phy->cfg->ops.disable)
    return;

    - /* Save PLL status if it is a clock source */
    - if (phy->usecase != MSM_DSI_PHY_SLAVE)
    - msm_dsi_pll_save_state(phy->pll);
    -
    phy->cfg->ops.disable(phy);

    dsi_phy_regulator_disable(phy);
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-03-10 13:51    [W:4.128 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site