diff options
author | Naseer Ahmed <naseer@codeaurora.org> | 2012-10-01 18:45:13 -0400 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2012-10-02 22:42:22 -0700 |
commit | 32aa90fc54164119fc6f871259005332e7a8dd38 (patch) | |
tree | 9e88e245a3830b8c06d599317d1ce0d0258934fa /libgralloc/framebuffer.cpp | |
parent | ff4f0254be575a264504687c407e0db2fd5573d7 (diff) | |
download | android_hardware_qcom_display-32aa90fc54164119fc6f871259005332e7a8dd38.tar.gz android_hardware_qcom_display-32aa90fc54164119fc6f871259005332e7a8dd38.tar.bz2 android_hardware_qcom_display-32aa90fc54164119fc6f871259005332e7a8dd38.zip |
hwc: Use asynchronous commit ioctl for display post
bug: 7274951
Change-Id: I70b2a00d6a2558f533bd87c92038774126434f03
Diffstat (limited to 'libgralloc/framebuffer.cpp')
-rw-r--r-- | libgralloc/framebuffer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libgralloc/framebuffer.cpp b/libgralloc/framebuffer.cpp index 0f67b14fa..522de368f 100644 --- a/libgralloc/framebuffer.cpp +++ b/libgralloc/framebuffer.cpp @@ -111,7 +111,8 @@ static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer) if (hnd && hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER) { m->info.activate = FB_ACTIVATE_VBL | FB_ACTIVATE_FORCE; m->info.yoffset = hnd->offset / m->finfo.line_length; - if (ioctl(m->framebuffer->fd, FBIOPUT_VSCREENINFO, &m->info) == -1) { + m->commit.var = m->info; + if (ioctl(m->framebuffer->fd, MSMFB_DISPLAY_COMMIT, &m->commit) == -1) { ALOGE("%s: FBIOPUT_VSCREENINFO failed for external, err: %s", __FUNCTION__, strerror(errno)); return -errno; @@ -152,6 +153,9 @@ int mapFrameBufferLocked(struct private_module_t* module) if (fd < 0) return -errno; + memset(&module->fence, 0, sizeof(struct mdp_buf_fence)); + memset(&module->commit, 0, sizeof(struct mdp_display_commit)); + struct fb_fix_screeninfo finfo; if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo) == -1) return -errno; |