OMAP: DSS2: HDMI: improve hdmi output enable
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 31 Aug 2011 11:47:11 +0000 (14:47 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 30 Sep 2011 13:16:43 +0000 (16:16 +0300)
Enabling HDMI output often causes sync lost errors, and almost always
causes timeout errors being printed from dispc_mgr_enable_digit_out().

The sync lost problem seems to go lessen greatly if we first enable the
HDMI output, and only then enable the DISPC output. However, as this is
only based on observations, the fix may not be perfect as the problem
may lie somewhere else. Nevertheless, HDMI works better with this patch.

This will also fix the dispc's dispc_mgr_enable_digit_out(), as the code
waits for two VSYNCs after enabling the output. If the HDMI output is
disabled (as it was previously), there are no VSYNCs and
dispc_mgr_enable_digit_out() will print timeout errors.

Cc: Mythri P K <mythripk@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/hdmi.c

index 4752137b226ac84f64a3548f5663973e992c59ca..06a78b2ab690885352e9bd19cce746e9111e7dd3 100644 (file)
@@ -529,10 +529,10 @@ static int hdmi_power_on(struct omap_dss_device *dssdev)
        dispc_set_digit_size(dssdev->panel.timings.x_res,
                        dssdev->panel.timings.y_res);
 
-       dispc_mgr_enable(OMAP_DSS_CHANNEL_DIGIT, 1);
-
        hdmi.ip_data.ops->video_enable(&hdmi.ip_data, 1);
 
+       dispc_mgr_enable(OMAP_DSS_CHANNEL_DIGIT, 1);
+
        return 0;
 err:
        hdmi_runtime_put();