Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 284964
b: refs/heads/master
c: 3ab15b2
h: refs/heads/master
v: v3
  • Loading branch information
Tomi Valkeinen committed Dec 2, 2011
1 parent 25ebff4 commit 5764949
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5b2141719aa8a14ebd242c60b4ce6a580276f7cd
refs/heads/master: 3ab15b2aa70369e0360f12e35e47bca1a269138b
37 changes: 30 additions & 7 deletions trunk/drivers/video/omap2/dss/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -715,16 +715,35 @@ static void dss_write_regs(void)
}

dss_mgr_write_regs(mgr);
}
}

if (need_go(mgr)) {
mp->busy = true;
static void dss_set_go_bits(void)
{
const int num_mgrs = omap_dss_get_num_overlay_managers();
int i;

if (!dss_data.irq_enabled && need_isr())
dss_register_vsync_isr();
for (i = 0; i < num_mgrs; ++i) {
struct omap_overlay_manager *mgr;
struct mgr_priv_data *mp;

dispc_mgr_go(mgr->id);
}
mgr = omap_dss_get_overlay_manager(i);
mp = get_mgr_priv(mgr);

if (!mp->enabled || mgr_manual_update(mgr) || mp->busy)
continue;

if (!need_go(mgr))
continue;

mp->busy = true;

if (!dss_data.irq_enabled && need_isr())
dss_register_vsync_isr();

dispc_mgr_go(mgr->id);
}

}

void dss_mgr_start_update(struct omap_overlay_manager *mgr)
Expand Down Expand Up @@ -848,6 +867,7 @@ static void dss_apply_irq_handler(void *data, u32 mask)
}

dss_write_regs();
dss_set_go_bits();

extra_updating = extra_info_update_ongoing();
if (!extra_updating)
Expand Down Expand Up @@ -912,6 +932,7 @@ int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
omap_dss_mgr_apply_mgr(mgr);

dss_write_regs();
dss_set_go_bits();

spin_unlock_irqrestore(&data_lock, flags);

Expand Down Expand Up @@ -1016,6 +1037,7 @@ int dss_mgr_enable(struct omap_overlay_manager *mgr)
dss_mgr_setup_fifos(mgr);

dss_write_regs();
dss_set_go_bits();

if (!mgr_manual_update(mgr))
mp->updating = true;
Expand Down Expand Up @@ -1392,6 +1414,7 @@ int dss_ovl_enable(struct omap_overlay *ovl)
dss_ovl_setup_fifo(ovl);

dss_write_regs();
dss_set_go_bits();

spin_unlock_irqrestore(&data_lock, flags);

Expand Down Expand Up @@ -1426,8 +1449,8 @@ int dss_ovl_disable(struct omap_overlay *ovl)
spin_lock_irqsave(&data_lock, flags);

dss_apply_ovl_enable(ovl, false);

dss_write_regs();
dss_set_go_bits();

spin_unlock_irqrestore(&data_lock, flags);

Expand Down

0 comments on commit 5764949

Please sign in to comment.