diff options
author | Alexei Shlychkov <x0177296@ti.com> | 2012-07-17 16:33:58 -0700 |
---|---|---|
committer | Craig Stout <craig.stout@ti.com> | 2012-09-05 15:09:14 -0700 |
commit | 8d6b04bda7e9d3f84bd7441e23dbf5fe87b111e3 (patch) | |
tree | e9c608063f7060df64e2fdde43dc8aee0017cd06 | |
parent | 92741d12c2ceb9a8e8e5121931a466b5615b8671 (diff) | |
download | hardware_ti_omap4-8d6b04bda7e9d3f84bd7441e23dbf5fe87b111e3.zip hardware_ti_omap4-8d6b04bda7e9d3f84bd7441e23dbf5fe87b111e3.tar.gz hardware_ti_omap4-8d6b04bda7e9d3f84bd7441e23dbf5fe87b111e3.tar.bz2 |
gcbv-user: fixed suspend/resume no blit issue.
Change-Id: I54015e6d1fbfa7821c80e461a519f8ab9c2869f4
Signed-off-by: Alexei Shlychkov <x0177296@ti.com>
-rw-r--r-- | gcbv/mirror/gcbv.c | 31 | ||||
-rw-r--r-- | gcbv/mirror/include/gcreg.h | 48 |
2 files changed, 28 insertions, 51 deletions
diff --git a/gcbv/mirror/gcbv.c b/gcbv/mirror/gcbv.c index 857cff5..f6c0cfe 100644 --- a/gcbv/mirror/gcbv.c +++ b/gcbv/mirror/gcbv.c @@ -336,9 +336,6 @@ struct gccallbackinfo { /* Driver context. */ struct gccontext { - /* Pipe initialization. */ - int initdone; - /* Last generated error message. */ char bverrorstr[128]; @@ -2902,33 +2899,12 @@ static enum bverror set_dst(struct bvbltparams *bltparams, struct bvbuffmap *dstmap) { enum bverror bverror = BVERR_NONE; - struct gcmoclip *gcmoclip; struct gcmodst *gcmodst; GCENTER(GCZONE_DEST); /* Did destination surface change? */ if ((batch->batchflags & BVBATCH_DST) != 0) { - /* Perform initialization. */ - if (gccontext.initdone == 0) { - /* Allocate command buffer. */ - bverror = claim_buffer(bltparams, batch, - sizeof(struct gcmoclip), - (void **) &gcmoclip); - if (bverror != BVERR_NONE) - goto exit; - - /* Set clipping. */ - gcmoclip->lt_ldst = gcmoclip_lt_ldst; - gcmoclip->lt.raw = 0; - gcmoclip->rb.raw = 0; - gcmoclip->rb.reg.right = GC_CLIP_RESET_RIGHT; - gcmoclip->rb.reg.bottom = GC_CLIP_RESET_BOTTOM; - - /* Mark as initialized. */ - gccontext.initdone = 1; - } - /* Allocate command buffer. */ bverror = claim_buffer(bltparams, batch, sizeof(struct gcmodst), @@ -2951,6 +2927,13 @@ static enum bverror set_dst(struct bvbltparams *bltparams, gcmodst->rotationheight_ldst = gcmodst_rotationheight_ldst; gcmodst->rotationheight.raw = 0; gcmodst->rotationheight.reg.height = batch->physheight; + + /* Set clipping. */ + gcmodst->clip_ldst = gcmodst_clip_ldst; + gcmodst->cliplt.raw = 0; + gcmodst->cliprb.raw = 0; + gcmodst->cliprb.reg.right = GC_CLIP_RESET_RIGHT; + gcmodst->cliprb.reg.bottom = GC_CLIP_RESET_BOTTOM; } exit: diff --git a/gcbv/mirror/include/gcreg.h b/gcbv/mirror/include/gcreg.h index 4b90ba8..d1662e6 100644 --- a/gcbv/mirror/include/gcreg.h +++ b/gcbv/mirror/include/gcreg.h @@ -8394,33 +8394,6 @@ struct gcmommuflush { }; /******************************************************************************* -** Modular operations: clip -*/ - -static const struct gccmdldstate gcmoclip_lt_ldst = - GCLDSTATE(gcregClipTopLeftRegAddrs, 2); - -struct gcmoclip { - /* gcregClipTopLeftRegAddrs */ - struct gccmdldstate lt_ldst; - - /* gcregClipTopLeftRegAddrs */ - union { - struct gcregcliplt reg; - unsigned int raw; - } lt; - - /* gcregClipBottomRight */ - union { - struct gcregcliprb reg; - unsigned int raw; - } rb; - - /* Alignment filler. */ - unsigned int _filler; -}; - -/******************************************************************************* ** Modular operations: dst */ @@ -8430,6 +8403,9 @@ static const struct gccmdldstate gcmodst_address_ldst = static const struct gccmdldstate gcmodst_rotationheight_ldst = GCLDSTATE(gcregDstRotationHeightRegAddrs, 1); +static const struct gccmdldstate gcmodst_clip_ldst = + GCLDSTATE(gcregClipTopLeftRegAddrs, 2); + struct gcmodst { /* gcregDestAddressRegAddrs */ struct gccmdldstate address_ldst; @@ -8454,6 +8430,24 @@ struct gcmodst { struct gcregdstrotationheight reg; unsigned int raw; } rotationheight; + + /* gcregClipTopLeftRegAddrs */ + struct gccmdldstate clip_ldst; + + /* gcregClipTopLeftRegAddrs */ + union { + struct gcregcliplt reg; + unsigned int raw; + } cliplt; + + /* gcregClipBottomRight */ + union { + struct gcregcliprb reg; + unsigned int raw; + } cliprb; + + /* Alignment filler. */ + unsigned int _filler; }; /******************************************************************************* |