diff options
author | Archit Taneja <architt@codeaurora.org> | 2017-06-16 10:39:34 +0530 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2017-06-16 11:16:08 -0400 |
commit | b474cbbb2bfd8d38f8bc36165567fe153d89fc9a (patch) | |
tree | 7b1b17331a315c7ed95b6d33b1b87f2bce5f7da8 /drivers/gpu/drm/msm/hdmi | |
parent | ffe8f53f9cc73fb25c8f78d4aed7ddf285503a60 (diff) | |
download | op-kernel-dev-b474cbbb2bfd8d38f8bc36165567fe153d89fc9a.zip op-kernel-dev-b474cbbb2bfd8d38f8bc36165567fe153d89fc9a.tar.gz |
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>
Diffstat (limited to 'drivers/gpu/drm/msm/hdmi')
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c | 5 |
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 143eab4..1fb7645 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); + usleep_range(100, 150); } static int hdmi_8996_pll_is_enabled(struct clk_hw *hw) |