Skip to content

Commit

Permalink
OMAPDSS: fix dss_ovl_unset_manager
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tomi Valkeinen committed Sep 7, 2012
1 parent b82fe7f commit b2f5976
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/video/omap2/dss/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -1330,6 +1330,13 @@ int dss_ovl_unset_manager(struct omap_overlay *ovl)
goto err;
}

spin_unlock_irqrestore(&data_lock, flags);

/* wait for pending extra_info updates to ensure the ovl is disabled */
wait_pending_extra_info_updates();

spin_lock_irqsave(&data_lock, flags);

op->channel = -1;

ovl->manager = NULL;
Expand Down

0 comments on commit b2f5976

Please sign in to comment.