aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2011-06-16 07:34:06 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-07-01 05:07:13 -0400
commit15ffa1dac53820bb712851d329ba465f74b00f76 (patch)
tree7f4f10e60922b9a1a7c114600b04eba17f89a792 /drivers
parent3c07cae2cccc4e40ff66521701a3c8eeda8726e1 (diff)
OMAP: DSS2: DSI: sync when disabling a display
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/omap2/displays/panel-taal.c5
-rw-r--r--drivers/video/omap2/dss/dsi.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index 4cb0449d5098..4e888ac09b3f 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -1247,11 +1247,8 @@ static void taal_power_off(struct omap_dss_device *dssdev)
1247 int r; 1247 int r;
1248 1248
1249 r = taal_dcs_write_0(td, DCS_DISPLAY_OFF); 1249 r = taal_dcs_write_0(td, DCS_DISPLAY_OFF);
1250 if (!r) { 1250 if (!r)
1251 r = taal_sleep_in(td); 1251 r = taal_sleep_in(td);
1252 /* HACK: wait a bit so that the message goes through */
1253 msleep(10);
1254 }
1255 1252
1256 if (r) { 1253 if (r) {
1257 dev_err(&dssdev->dev, 1254 dev_err(&dssdev->dev,
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 4496d09315c9..2881399be931 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -4291,6 +4291,11 @@ void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
4291 4291
4292 mutex_lock(&dsi->lock); 4292 mutex_lock(&dsi->lock);
4293 4293
4294 dsi_sync_vc(dsidev, 0);
4295 dsi_sync_vc(dsidev, 1);
4296 dsi_sync_vc(dsidev, 2);
4297 dsi_sync_vc(dsidev, 3);
4298
4294 dsi_display_uninit_dispc(dssdev); 4299 dsi_display_uninit_dispc(dssdev);
4295 4300
4296 dsi_display_uninit_dsi(dssdev, disconnect_lanes, enter_ulps); 4301 dsi_display_uninit_dsi(dssdev, disconnect_lanes, enter_ulps);