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

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>

authored by

Archit Taneja and committed by
Rob Clark
b474cbbb ffe8f53f

+5
+5
drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
··· 670 670 671 671 static 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 675 680 static int hdmi_8996_pll_is_enabled(struct clk_hw *hw)