summaryrefslogtreecommitdiff
path: root/drivers/video/omap2
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r--drivers/video/omap2/dss/apply.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
index 98fef08..e2eaed2 100644
--- a/drivers/video/omap2/dss/apply.c
+++ b/drivers/video/omap2/dss/apply.c
@@ -824,6 +824,7 @@ static void dss_apply_irq_handler(void *data, u32 mask)
for (i = 0; i < num_mgrs; i++) {
struct omap_overlay_manager *mgr;
struct mgr_priv_data *mp;
+ bool was_updating;
mgr = omap_dss_get_overlay_manager(i);
mp = get_mgr_priv(mgr);
@@ -831,15 +832,17 @@ static void dss_apply_irq_handler(void *data, u32 mask)
if (!mp->enabled)
continue;
+ was_updating = mp->updating;
mp->updating = dispc_mgr_is_enabled(i);
if (!mgr_manual_update(mgr)) {
+ bool was_busy = mp->busy;
mp->busy = dispc_mgr_go_busy(i);
- if (!mp->busy)
+ if (was_busy && !mp->busy)
mgr_clear_shadow_dirty(mgr);
} else {
- if (!mp->updating)
+ if (was_updating && !mp->updating)
mgr_clear_shadow_dirty(mgr);
}
}