summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Lorentzon <marcus.xm.lorentzon@stericsson.com>2011-12-22 14:20:58 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:04:23 +0200
commit476bdd627a2358b29d25f77a7452f3823cdbbd76 (patch)
tree26d10290f7c8be8e50ec3546b71bb59aea4919de
parent01505bc0bb2b83630610521c252204cf8c263d57 (diff)
video: mcde: Overlay register access race
When two updates are requested before display vsync interrupt of first update has arrived, then MCDE update screen using the buffer of the second update for both updates. This fix makes sure MCDE driver wait for first update before updating overlay registers. ST-Ericsson ID: 406356 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I65aa73455ac4a27d150ae196477d6a313cada85b Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/43515 Reviewed-by: Marcus LORENTZON <marcus.xm.lorentzon@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Marta LOFSTEDT <marta.lofstedt@stericsson.com> Tested-by: Marta LOFSTEDT <marta.lofstedt@stericsson.com> Reviewed-by: Anders BAUER <anders.bauer@stericsson.com> Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
-rw-r--r--drivers/video/mcde/mcde_hw.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c
index 3db1d50d3c1..6e846e60f47 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -2764,10 +2764,14 @@ static void chnl_update_overlay(struct mcde_chnl_state *chnl,
return;
if (ovly->regs.dirty_buf) {
+ if (!chnl->port.update_auto_trig)
+ set_channel_state_sync(chnl, CHNLSTATE_SETUP);
update_overlay_registers_on_the_fly(ovly->idx, &ovly->regs);
mcde_debugfs_overlay_update(chnl->id, ovly != chnl->ovly0);
}
if (ovly->regs.dirty) {
+ if (!chnl->port.update_auto_trig)
+ set_channel_state_sync(chnl, CHNLSTATE_SETUP);
chnl_ovly_pixel_format_apply(chnl, ovly);
update_overlay_registers(ovly->idx, &ovly->regs, &chnl->port,
chnl->fifo, chnl->regs.x, chnl->regs.y,