Skip to content

Commit

Permalink
OMAPDSS: APPLY: fix need_isr
Browse files Browse the repository at this point in the history
need_isr() should return true whenever there's work that needs to be
handled in the VSYNC/FRAMEDONE irq handler. However, need_isr() is
missing some cases where we need the irq handler.

This patch adds checks for shadow dirty flags, so that the irq handler
is started/kept running while shadow dirty flags are set.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
  • Loading branch information
Tomi Valkeinen committed Dec 2, 2011
1 parent cc372d8 commit 9f80895
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion drivers/video/omap2/dss/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -358,16 +358,38 @@ static bool need_isr(void)
if (mp->info_dirty)
return true;

/* to set GO bit */
if (mp->shadow_info_dirty)
return true;

list_for_each_entry(ovl, &mgr->overlays, list) {
struct ovl_priv_data *op;

op = get_ovl_priv(ovl);

/*
* NOTE: we check extra_info flags even for
* disabled overlays, as extra_infos need to be
* always written.
*/

/* to write new values to registers */
if (op->extra_info_dirty)
return true;

/* to set GO bit */
if (op->shadow_extra_info_dirty)
return true;

if (!op->enabled)
continue;

/* to write new values to registers */
if (op->info_dirty || op->extra_info_dirty)
if (op->info_dirty)
return true;

/* to set GO bit */
if (op->shadow_info_dirty)
return true;
}
}
Expand Down

0 comments on commit 9f80895

Please sign in to comment.