OMAP: DSS2: DSI: sync when disabling a display
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 16 Jun 2011 11:34:06 +0000 (14:34 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 1 Jul 2011 09:07:13 +0000 (12:07 +0300)
When the panel driver calls omapdss_dsi_display_disable() it is possible
that there are still some unsent packets in the TX fifo.

Add dsi_sync_vc() calls in the beginning of
omapdss_dsi_display_disable() to make sure the TX fifos are empty.

This allows us to remove the msleep(10) hack from panel-taal.c

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/displays/panel-taal.c
drivers/video/omap2/dss/dsi.c

index 4cb0449d50980919b4bb68566b5e28e5e720f314..4e888ac09b3f4a79de6b263d275684affca45ba0 100644 (file)
@@ -1247,11 +1247,8 @@ static void taal_power_off(struct omap_dss_device *dssdev)
        int r;
 
        r = taal_dcs_write_0(td, DCS_DISPLAY_OFF);
-       if (!r) {
+       if (!r)
                r = taal_sleep_in(td);
-               /* HACK: wait a bit so that the message goes through */
-               msleep(10);
-       }
 
        if (r) {
                dev_err(&dssdev->dev,
index 4496d09315c95e3a3a94d0e3dcf347cf46a705a7..2881399be9318785374a3d405ae88f520cb94b95 100644 (file)
@@ -4291,6 +4291,11 @@ void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
 
        mutex_lock(&dsi->lock);
 
+       dsi_sync_vc(dsidev, 0);
+       dsi_sync_vc(dsidev, 1);
+       dsi_sync_vc(dsidev, 2);
+       dsi_sync_vc(dsidev, 3);
+
        dsi_display_uninit_dispc(dssdev);
 
        dsi_display_uninit_dsi(dssdev, disconnect_lanes, enter_ulps);