aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArchit Taneja <architt@codeaurora.org>2017-06-16 01:09:34 -0400
committerRob Clark <robdclark@gmail.com>2017-06-16 11:16:08 -0400
commitb474cbbb2bfd8d38f8bc36165567fe153d89fc9a (patch)
tree7b1b17331a315c7ed95b6d33b1b87f2bce5f7da8
parentffe8f53f9cc73fb25c8f78d4aed7ddf285503a60 (diff)
drm/msm/hdmi: 8996 PLL: Populate unprepare
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> Signed-off-by: Rob Clark <robdclark@gmail.com>
-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 143eab46ba68..1fb7645cc721 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,
670 670
671static void hdmi_8996_pll_unprepare(struct clk_hw *hw) 671static void hdmi_8996_pll_unprepare(struct clk_hw *hw)
672{ 672{
673 struct hdmi_pll_8996 *pll = hw_clk_to_pll(hw);
674 struct hdmi_phy *phy = pll_get_phy(pll);
675
676 hdmi_phy_write(phy, REG_HDMI_8996_PHY_CFG, 0x6);
677 usleep_range(100, 150);
673} 678}
674 679
675static int hdmi_8996_pll_is_enabled(struct clk_hw *hw) 680static int hdmi_8996_pll_is_enabled(struct clk_hw *hw)