aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-09-06 09:10:28 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-09-07 13:02:14 -0400
commitb2f5976c109350977104f27211a7029ec67cd488 (patch)
tree47f6de06e649c2fefaddf85c681a0d7e33b2a07a /drivers
parentb82fe7f025183897880771dd7cdf725ecc148ff2 (diff)
OMAPDSS: fix dss_ovl_unset_manager
When we removed fifomerge support, we also changed dss_ovl_disable so that it doesn't wait for the hardware to be finished with the overlay. This may cause a problem when changing the overlay's manager, as changing the manager is an immediate change. Thus if the overlay is still being used by the HW when the manager is changed, there may be glitches on the screen. This patch adds a wait into dss_ovl_unset_manager, which ensures the overlays are disabled in the HW. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/omap2/dss/apply.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
index 4a58d80a6315..6354bb842856 100644
--- a/drivers/video/omap2/dss/apply.c
+++ b/drivers/video/omap2/dss/apply.c
@@ -1330,6 +1330,13 @@ int dss_ovl_unset_manager(struct omap_overlay *ovl)
1330 goto err; 1330 goto err;
1331 } 1331 }
1332 1332
1333 spin_unlock_irqrestore(&data_lock, flags);
1334
1335 /* wait for pending extra_info updates to ensure the ovl is disabled */
1336 wait_pending_extra_info_updates();
1337
1338 spin_lock_irqsave(&data_lock, flags);
1339
1333 op->channel = -1; 1340 op->channel = -1;
1334 1341
1335 ovl->manager = NULL; 1342 ovl->manager = NULL;