summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexei Shlychkov <x0177296@ti.com>2012-07-17 16:33:58 -0700
committerCraig Stout <craig.stout@ti.com>2012-09-05 15:09:14 -0700
commit8d6b04bda7e9d3f84bd7441e23dbf5fe87b111e3 (patch)
treee9c608063f7060df64e2fdde43dc8aee0017cd06
parent92741d12c2ceb9a8e8e5121931a466b5615b8671 (diff)
downloadhardware_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.c31
-rw-r--r--gcbv/mirror/include/gcreg.h48
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;
};
/*******************************************************************************