aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArchit Taneja <architt@codeaurora.org>2016-11-30 10:40:30 +0530
committerArchit Taneja <architt@codeaurora.org>2017-01-10 18:28:36 +0530
commit71401a1779df8b80c33745285679bf7a041a10e0 (patch)
treee2d61ca67b005b9fd117abd828e295816818f83d
parent49b102405b4b0c9b538ec422149c4b2e6b558d9a (diff)
drm/msm/hdmi: 8996 PLL: Populate unpreparetracking-qcomlt-drm-msm-v4.9
Without doing anything in unprepare, the HDMI driver isn't able to switch modes successfully. Calling set_rate with a new rate results in an un-locked PLL. If we reset the PLL in unprepare, the PLL is able to lock with the new rate. Signed-off-by: Archit Taneja <architt@codeaurora.org>
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c b/drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
index 143eab46ba687..f8e88d45dd237 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
@@ -670,6 +670,11 @@ static unsigned long hdmi_8996_pll_recalc_rate(struct clk_hw *hw,
static void hdmi_8996_pll_unprepare(struct clk_hw *hw)
{
+ struct hdmi_pll_8996 *pll = hw_clk_to_pll(hw);
+ struct hdmi_phy *phy = pll_get_phy(pll);
+
+ hdmi_phy_write(phy, REG_HDMI_8996_PHY_CFG, 0x6);
+ udelay(100);
}
static int hdmi_8996_pll_is_enabled(struct clk_hw *hw)