diff options
| author | Priit Laes <priit.laes@paf.com> | 2018-12-19 15:06:08 +0200 | 
|---|---|---|
| committer | Anatolij Gustschin <agust@denx.de> | 2019-02-15 16:28:58 +0100 | 
| commit | 361604d658695966ba985f544800ecc7563caf41 (patch) | |
| tree | e7256b0fb28da5b348e1c7262ca8062858f8e84c | |
| parent | 63f7e3fca391a50a499fed828fe16325fdee45f3 (diff) | |
sunxi: display: Move DDC PLL setup to HDMI init
Move PLL initialization code to single place so
we won't call it every time we query for EDID data.
Signed-off-by: Priit Laes <priit.laes@paf.com>
| -rw-r--r-- | drivers/video/sunxi/sunxi_display.c | 14 | 
1 files changed, 7 insertions, 7 deletions
| diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c index 6dd9bec351f..0362071f720 100644 --- a/drivers/video/sunxi/sunxi_display.c +++ b/drivers/video/sunxi/sunxi_display.c @@ -113,6 +113,13 @@ static int sunxi_hdmi_hpd_detect(int hpd_delay)  	writel(SUNXI_HDMI_CTRL_ENABLE, &hdmi->ctrl);  	writel(SUNXI_HDMI_PAD_CTRL0_HDP, &hdmi->pad_ctrl0); +	/* Enable PLLs for eventual DDC */ +	writel(SUNXI_HDMI_PAD_CTRL1 | SUNXI_HDMI_PAD_CTRL1_HALVE, +	       &hdmi->pad_ctrl1); +	writel(SUNXI_HDMI_PLL_CTRL | SUNXI_HDMI_PLL_CTRL_DIV(15), +	       &hdmi->pll_ctrl); +	writel(SUNXI_HDMI_PLL_DBG0_PLL3, &hdmi->pll_dbg0); +  	while (timer_get_us() < tmo) {  		if (readl(&hdmi->hpd) & SUNXI_HDMI_HPD_DETECT)  			return 1; @@ -215,13 +222,6 @@ static int sunxi_hdmi_edid_get_mode(struct ctfb_res_modes *mode)  		(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;  	int i, r, ext_blocks = 0; -	/* SUNXI_HDMI_CTRL_ENABLE & PAD_CTRL0 are already set by hpd_detect */ -	writel(SUNXI_HDMI_PAD_CTRL1 | SUNXI_HDMI_PAD_CTRL1_HALVE, -	       &hdmi->pad_ctrl1); -	writel(SUNXI_HDMI_PLL_CTRL | SUNXI_HDMI_PLL_CTRL_DIV(15), -	       &hdmi->pll_ctrl); -	writel(SUNXI_HDMI_PLL_DBG0_PLL3, &hdmi->pll_dbg0); -  	/* Reset i2c controller */  	setbits_le32(&ccm->hdmi_clk_cfg, CCM_HDMI_CTRL_DDC_GATE);  	writel(SUNXI_HMDI_DDC_CTRL_ENABLE | | 
