Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm/dsi: save pll state before dsi host is powered off

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>

authored by

Harigovindan P and committed by
Rob Clark
a1028dcf 9cc68ee1

+5 -4
+5
drivers/gpu/drm/msm/dsi/dsi_manager.c
··· 506 506 struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1); 507 507 struct mipi_dsi_host *host = msm_dsi->host; 508 508 struct drm_panel *panel = msm_dsi->panel; 509 + struct msm_dsi_pll *src_pll; 509 510 bool is_dual_dsi = IS_DUAL_DSI(); 510 511 int ret; 511 512 ··· 539 538 pr_err("%s: Panel %d unprepare failed,%d\n", __func__, 540 539 id, ret); 541 540 } 541 + 542 + /* Save PLL status if it is a clock source */ 543 + src_pll = msm_dsi_phy_get_pll(msm_dsi->phy); 544 + msm_dsi_pll_save_state(src_pll); 542 545 543 546 ret = msm_dsi_host_power_off(host); 544 547 if (ret)
-4
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
··· 724 724 if (!phy || !phy->cfg->ops.disable) 725 725 return; 726 726 727 - /* Save PLL status if it is a clock source */ 728 - if (phy->usecase != MSM_DSI_PHY_SLAVE) 729 - msm_dsi_pll_save_state(phy->pll); 730 - 731 727 phy->cfg->ops.disable(phy); 732 728 733 729 dsi_phy_regulator_disable(phy);