author | Stark Li <stark.li@amlogic.com> | 2017-04-11 08:13:26 (GMT) |
---|---|---|
committer | Tellen Yu <tellen.yu@amlogic.com> | 2017-04-11 08:19:34 (GMT) |
commit | 53b19fcdf188c9929ec41afcdda12783a7b9709d (patch) | |
tree | a99455a096bb7ec88774eab6fa0da51a8f055253 | |
parent | 660aa9d2da64e265693ead517c45991bd8ab6896 (diff) | |
download | hwcomposer-53b19fcdf188c9929ec41afcdda12783a7b9709d.zip hwcomposer-53b19fcdf188c9929ec41afcdda12783a7b9709d.tar.gz hwcomposer-53b19fcdf188c9929ec41afcdda12783a7b9709d.tar.bz2 |
PD#142477: fix TV osd is blanked
Change-Id: Ie0509c486e89cdbc5334e674ce45609fee87d68f
-rw-r--r-- | hwc2/common/devices/PhysicalDevice.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/hwc2/common/devices/PhysicalDevice.cpp b/hwc2/common/devices/PhysicalDevice.cpp index 04bf089..bc15689 100644 --- a/hwc2/common/devices/PhysicalDevice.cpp +++ b/hwc2/common/devices/PhysicalDevice.cpp @@ -704,14 +704,18 @@ int32_t PhysicalDevice::postFramebuffer(int32_t* outRetireFence, bool hasVideoOv if (hasVideoOverlay && (layerNum == 1 || (layerNum == 2 && haveCursorLayer))) needBlankFb0 = true; - if (needBlankFb0) { - mFbSyncRequest.op |= OSD_BLANK_OP_BIT; + if (mIsContinuousBuf) { + // bit 0 is osd blank flag. + if (needBlankFb0) { + mFbSyncRequest.op |= OSD_BLANK_OP_BIT; + } else { + mFbSyncRequest.op &= ~(OSD_BLANK_OP_BIT); + } + mFramebufferContext->setStatus(needBlankFb0); } else { - mFbSyncRequest.op &= ~(OSD_BLANK_OP_BIT); + setOSD0Blank(needBlankFb0); } - mFramebufferContext->setStatus(needBlankFb0); - if (!mClientTargetHnd || private_handle_t::validate(mClientTargetHnd) < 0 || mPowerMode == HWC2_POWER_MODE_OFF) { ETRACE("Post blank to screen, mClientTargetHnd(%p, %d), mTargetAcquireFence(%d)", mClientTargetHnd, private_handle_t::validate(mClientTargetHnd), mTargetAcquireFence); @@ -723,6 +727,7 @@ int32_t PhysicalDevice::postFramebuffer(int32_t* outRetireFence, bool hasVideoOv //for nothing to display, post blank to osd which will signal the last retire fence. mFbSyncRequest.type = DIRECT_COMPOSE_MODE; mFbSyncRequest.op |= OSD_BLANK_OP_BIT; + mFramebufferContext->setStatus(true); mPriorFrameRetireFence = hwc_fb_post_with_fence_locked(&fbInfo, &mFbSyncRequest, NULL); } else { *outRetireFence = HwcFenceControl::dupFence(mPriorFrameRetireFence); |