hwc: Call MSMFB_DISPLAY_COMMIT even if FB handle is null.
Call MSMFB_DISPLAY_COMMIT for primary FB even if FB handle is null. This is already done for external FB. Change-Id: I5c405f933ce0fd99df6813acea45169802c54226
This commit is contained in:
@@ -86,24 +86,15 @@ static int fb_setSwapInterval(struct framebuffer_device_t* dev,
|
|||||||
|
|
||||||
static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer)
|
static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer)
|
||||||
{
|
{
|
||||||
|
|
||||||
fb_context_t* ctx = (fb_context_t*) dev;
|
|
||||||
|
|
||||||
private_handle_t *hnd = static_cast<private_handle_t*>
|
|
||||||
(const_cast<native_handle_t*>(buffer));
|
|
||||||
private_module_t* m =
|
private_module_t* m =
|
||||||
reinterpret_cast<private_module_t*>(dev->common.module);
|
reinterpret_cast<private_module_t*>(dev->common.module);
|
||||||
|
struct mdp_display_commit prim_commit;
|
||||||
if (hnd) {
|
memset(&prim_commit, 0, sizeof(struct mdp_display_commit));
|
||||||
m->info.activate = FB_ACTIVATE_VBL | FB_ACTIVATE_FORCE;
|
prim_commit.flags = MDP_DISPLAY_COMMIT_OVERLAY;
|
||||||
m->info.yoffset = hnd->offset / m->finfo.line_length;
|
if (ioctl(m->framebuffer->fd, MSMFB_DISPLAY_COMMIT, &prim_commit) == -1) {
|
||||||
m->commit.var = m->info;
|
ALOGE("%s: MSMFB_DISPLAY_COMMIT for primary failed, str: %s",
|
||||||
m->commit.flags |= MDP_DISPLAY_COMMIT_OVERLAY;
|
__FUNCTION__, strerror(errno));
|
||||||
if (ioctl(m->framebuffer->fd, MSMFB_DISPLAY_COMMIT, &m->commit) == -1) {
|
return -errno;
|
||||||
ALOGE("%s: MSMFB_DISPLAY_COMMIT ioctl failed, err: %s", __FUNCTION__,
|
|
||||||
strerror(errno));
|
|
||||||
return -errno;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -332,10 +332,10 @@ static int hwc_set_primary(hwc_context_t *ctx, hwc_display_contents_1_t* list) {
|
|||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ctx->mFbDev->post(ctx->mFbDev, fbLayer->handle)) {
|
}
|
||||||
ALOGE("%s: ctx->mFbDev->post fail!", __FUNCTION__);
|
if (ctx->mFbDev->post(ctx->mFbDev, fbLayer->handle)) {
|
||||||
return -1;
|
ALOGE("%s: ctx->mFbDev->post fail!", __FUNCTION__);
|
||||||
}
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user