drm/tegra: hdmi - Use proper power-up sequence
authorThierry Reding <treding@nvidia.com>
Wed, 16 Apr 2014 08:46:24 +0000 (10:46 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 5 Jun 2014 21:09:24 +0000 (23:09 +0200)
This reflects the power-up sequence as described in the documentation,
but it doesn't seem to be strictly necessary to get HDMI to work.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/hdmi.c

index 5bc26590ab327b265d1cf7746c8fa222a1b5454a..4116b08acabb73388943812b8ba0739c7cf9a985 100644 (file)
@@ -737,6 +737,17 @@ static int tegra_output_hdmi_enable(struct tegra_output *output)
        usleep_range(1000, 2000);
        reset_control_deassert(hdmi->rst);
 
+       /* power up sequence */
+       value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_PLL0);
+       value &= ~SOR_PLL_PDBG;
+       tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_PLL0);
+
+       usleep_range(10, 20);
+
+       value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_PLL0);
+       value &= ~SOR_PLL_PWR;
+       tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_PLL0);
+
        tegra_dc_writel(dc, VSYNC_H_POSITION(1),
                        DC_DISP_DISP_TIMING_OPTIONS);
        tegra_dc_writel(dc, DITHER_CONTROL_DISABLE | BASE_COLOR_SIZE888,