diff options
author | Andy McFadden <fadden@android.com> | 2012-10-10 19:34:11 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-10-10 19:34:11 -0700 |
commit | f0c89b28be2e74c26d74b2a21b7228516f8c236f (patch) | |
tree | 5af57adee4c57d165919aa7162cff83546b42bd4 | |
parent | 8d5d2019805df1f27cbec07eeca47dd5ab453dad (diff) | |
parent | 9e9689c11148521d2c16a121a0b87b062be0714c (diff) | |
download | frameworks_native-f0c89b28be2e74c26d74b2a21b7228516f8c236f.zip frameworks_native-f0c89b28be2e74c26d74b2a21b7228516f8c236f.tar.gz frameworks_native-f0c89b28be2e74c26d74b2a21b7228516f8c236f.tar.bz2 |
Merge "Fix HDMI unblank behavior" into jb-mr1-dev
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 1 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index be4af51..d9bda11 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -696,6 +696,7 @@ void HWComposer::disconnectDisplay(int disp) { free(dd.list); dd.list = NULL; dd.framebufferTarget = NULL; // points into dd.list + dd.fbTargetHandle = NULL; } } diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 17c67f9..492d1cf 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -772,8 +772,7 @@ void SurfaceFlinger::onHotplugReceived(int type, bool connected) { } setTransactionFlags(eDisplayTransactionNeeded); - // we should only receive DisplayDevice::DisplayType from the vsync callback - mEventThread->onHotplugReceived(type, connected); + // Defer EventThread notification until SF has updated mDisplays. } } @@ -1130,6 +1129,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) DisplayDevice::makeCurrent(mEGLDisplay, hw, mEGLContext); mDisplays.removeItem(draw.keyAt(i)); getHwComposer().disconnectDisplay(draw[i].type); + mEventThread->onHotplugReceived(draw[i].type, false); } else { ALOGW("trying to remove the main display"); } @@ -1212,6 +1212,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) state.viewport, state.frame); hw->setDisplayName(state.displayName); mDisplays.add(display, hw); + mEventThread->onHotplugReceived(state.type, true); } } } |