summaryrefslogtreecommitdiff
path: root/libcopybit
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-03-09 17:15:57 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-03-09 17:15:57 -0700
commitc0103cbac5fde1bf855907816395039a9151e50a (patch)
tree13ecdcea252719c6ff96c9cb1707ac3d7312f0e5 /libcopybit
parent8557548cfbac61c7257aa01fbd578439869bcc68 (diff)
parent140965d6a42fa4bdd1cdc6bc6e7f7f8106f40e0f (diff)
downloaddisplay-c0103cbac5fde1bf855907816395039a9151e50a.tar.gz
Merge "hwc: Add dynamic fps support for PPP"
Diffstat (limited to 'libcopybit')
-rw-r--r--libcopybit/copybit.cpp13
-rw-r--r--libcopybit/copybit.h1
2 files changed, 12 insertions, 2 deletions
diff --git a/libcopybit/copybit.cpp b/libcopybit/copybit.cpp
index 40519e8c..02f0c7e2 100644
--- a/libcopybit/copybit.cpp
+++ b/libcopybit/copybit.cpp
@@ -64,6 +64,7 @@ struct copybit_context_t {
int relFence;
struct mdp_buf_sync sync;
struct blitReq list;
+ uint8_t dynamic_fps;
};
/**
@@ -227,6 +228,7 @@ static void set_infos(struct copybit_context_t *dev,
struct mdp_blit_req *req, int flags)
{
req->alpha = dev->mAlpha;
+ req->fps = dev->dynamic_fps;
req->transp_mask = MDP_TRANSP_NOP;
req->flags = dev->mFlags | flags;
// check if we are blitting to f/b
@@ -258,7 +260,7 @@ static int msm_copybit(struct copybit_context_t *dev, void const *list)
for (unsigned int i=0 ; i<l->count ; i++) {
ALOGE("%d: src={w=%d, h=%d, f=%d, rect={%d,%d,%d,%d}}\n"
" dst={w=%d, h=%d, f=%d, rect={%d,%d,%d,%d}}\n"
- " flags=%08x"
+ " flags=%08x, fps=%d"
,
i,
l->req[i].src.width,
@@ -275,7 +277,8 @@ static int msm_copybit(struct copybit_context_t *dev, void const *list)
l->req[i].dst_rect.y,
l->req[i].dst_rect.w,
l->req[i].dst_rect.h,
- l->req[i].flags
+ l->req[i].flags,
+ l->req[i].fps
);
}
#endif
@@ -323,6 +326,9 @@ static int set_parameter_copybit(
if (value >= 256) value = 255;
ctx->mAlpha = (uint8_t)value;
break;
+ case COPYBIT_DYNAMIC_FPS:
+ ctx->dynamic_fps = (uint8_t)value;
+ break;
case COPYBIT_DITHER:
if (value == COPYBIT_ENABLE) {
ctx->mFlags |= MDP_DITHER;
@@ -756,6 +762,9 @@ static int open_copybit(const struct hw_module_t* module, const char* name,
ctx->device.flush_get_fence = flush_get_fence;
ctx->device.clear = clear_copybit;
ctx->mAlpha = MDP_ALPHA_NOP;
+ //dynamic_fps is zero means default
+ //panel refresh rate for driver.
+ ctx->dynamic_fps = 0;
ctx->mFlags = 0;
ctx->sync.flags = 0;
ctx->relFence = -1;
diff --git a/libcopybit/copybit.h b/libcopybit/copybit.h
index 64280233..1fc17ed9 100644
--- a/libcopybit/copybit.h
+++ b/libcopybit/copybit.h
@@ -79,6 +79,7 @@ enum {
/* FB height */
COPYBIT_FRAMEBUFFER_HEIGHT = 8,
COPYBIT_FG_LAYER = 9,
+ COPYBIT_DYNAMIC_FPS = 10,
};
/* values for copybit_set_parameter(COPYBIT_TRANSFORM) */