From: Archit Taneja Date: Fri, 16 Jun 2017 05:09:34 +0000 (+0530) Subject: drm/msm/hdmi: 8996 PLL: Populate unprepare X-Git-Tag: v4.14-rc1~484^2~14^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b474cbbb2bfd8d38f8bc36165567fe153d89fc9a;p=platform%2Fkernel%2Flinux-rpi3.git 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 Signed-off-by: Rob Clark --- 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)