diff --git a/common.mk b/common.mk
index 30896a8..ebfc8ec 100644
--- a/common.mk
+++ b/common.mk
@@ -25,6 +25,10 @@
     common_flags += -D__ARM_HAVE_NEON
 endif
 
+ifeq ($(TARGET_BOARD_PLATFORM), msm8974)
+    common_flags += -DVENUS_COLOR_FORMAT
+endif
+
 common_deps  :=
 kernel_includes :=
 
diff --git a/libcopybit/Android.mk b/libcopybit/Android.mk
index 2c28a7b..55d421b 100644
--- a/libcopybit/Android.mk
+++ b/libcopybit/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2008 The Android Open Source Project
+# Copyright (C) 2012 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,15 +15,15 @@
 LOCAL_PATH:= $(call my-dir)
 include $(LOCAL_PATH)/../common.mk
 include $(CLEAR_VARS)
+
 LOCAL_MODULE                  := copybit.$(TARGET_BOARD_PLATFORM)
 LOCAL_MODULE_PATH             := $(TARGET_OUT_SHARED_LIBRARIES)/hw
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
 LOCAL_SHARED_LIBRARIES        := $(common_libs) libdl libmemalloc
-LOCAL_CFLAGS                  := $(common_flags)
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdcopybit\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 
-
 ifeq ($(TARGET_USES_C2D_COMPOSITION),true)
     LOCAL_CFLAGS += -DCOPYBIT_Z180=1 -DC2D_SUPPORT_DISPLAY=1
     LOCAL_SRC_FILES := copybit_c2d.cpp software_converter.cpp
diff --git a/libcopybit/copybit.cpp b/libcopybit/copybit.cpp
index f79c33b..773e9b8 100644
--- a/libcopybit/copybit.cpp
+++ b/libcopybit/copybit.cpp
@@ -15,9 +15,6 @@
  * limitations under the License.
  */
 
-
-#define LOG_TAG "copybit"
-
 #include <cutils/log.h>
 
 #include <linux/msm_mdp.h>
diff --git a/libcopybit/copybit_c2d.cpp b/libcopybit/copybit_c2d.cpp
index 365be5f..ea5dd2a 100644
--- a/libcopybit/copybit_c2d.cpp
+++ b/libcopybit/copybit_c2d.cpp
@@ -15,8 +15,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "copybit_c2d"
-
 #include <cutils/log.h>
 
 #include <stdint.h>
diff --git a/libcopybit/software_converter.cpp b/libcopybit/software_converter.cpp
index c9bb674..ec0f271 100644
--- a/libcopybit/software_converter.cpp
+++ b/libcopybit/software_converter.cpp
@@ -27,7 +27,6 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#define LOG_TAG "copybit"
 #include <cutils/log.h>
 #include <stdlib.h>
 #include <errno.h>
diff --git a/libexternal/Android.mk b/libexternal/Android.mk
index cdbbd5c..f723113 100644
--- a/libexternal/Android.mk
+++ b/libexternal/Android.mk
@@ -1,12 +1,13 @@
 LOCAL_PATH := $(call my-dir)
 include $(LOCAL_PATH)/../common.mk
 include $(CLEAR_VARS)
+
 LOCAL_MODULE                  := libexternal
 LOCAL_MODULE_PATH             := $(TARGET_OUT_SHARED_LIBRARIES)
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
 LOCAL_SHARED_LIBRARIES        := $(common_libs) liboverlay
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"external\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdexternal\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := external.cpp
 
diff --git a/libexternal/external.cpp b/libexternal/external.cpp
index f9ee94c..b9abc31 100644
--- a/libexternal/external.cpp
+++ b/libexternal/external.cpp
@@ -549,7 +549,8 @@
     if(mFd == -1)
         return false;
     struct mdp_display_commit ext_commit;
-    ext_commit.flags |= MDP_DISPLAY_COMMIT_OVERLAY;
+    memset(&ext_commit, 0, sizeof(struct mdp_display_commit));
+    ext_commit.flags = MDP_DISPLAY_COMMIT_OVERLAY;
     if (ioctl(mFd, MSMFB_DISPLAY_COMMIT, &ext_commit) == -1) {
         ALOGE("%s: MSMFB_DISPLAY_COMMIT for external failed, str: %s",
                 __FUNCTION__, strerror(errno));
diff --git a/libgenlock/Android.mk b/libgenlock/Android.mk
index 92ac227..96e8b4e 100644
--- a/libgenlock/Android.mk
+++ b/libgenlock/Android.mk
@@ -6,8 +6,8 @@
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := $(common_includes)
 LOCAL_SHARED_LIBRARIES        := liblog libcutils
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"libgenlock\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdgenlock\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := genlock.cpp
-include $(BUILD_SHARED_LIBRARY)
 
+include $(BUILD_SHARED_LIBRARY)
diff --git a/libgralloc/Android.mk b/libgralloc/Android.mk
index 9d6afbc..159a252 100644
--- a/libgralloc/Android.mk
+++ b/libgralloc/Android.mk
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#gralloc module
+# Gralloc module
 LOCAL_PATH := $(call my-dir)
 include $(LOCAL_PATH)/../common.mk
 include $(CLEAR_VARS)
@@ -23,18 +23,21 @@
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
 LOCAL_SHARED_LIBRARIES        := $(common_libs) libmemalloc libgenlock
 LOCAL_SHARED_LIBRARIES        += libqdutils libGLESv1_CM
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"gralloc\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdgralloc\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps) $(kernel_deps)
 LOCAL_SRC_FILES               :=  gpu.cpp gralloc.cpp framebuffer.cpp mapper.cpp
+
 include $(BUILD_SHARED_LIBRARY)
 
-#MemAlloc Library
+# MemAlloc Library
 include $(CLEAR_VARS)
+
 LOCAL_MODULE                  := libmemalloc
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
 LOCAL_SHARED_LIBRARIES        := $(common_libs) libgenlock
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"memalloc\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdmemalloc\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps) $(kernel_deps)
 LOCAL_SRC_FILES               :=  ionalloc.cpp alloc_controller.cpp
+
 include $(BUILD_SHARED_LIBRARY)
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp
index e4d1d68..823c1ae 100644
--- a/libgralloc/alloc_controller.cpp
+++ b/libgralloc/alloc_controller.cpp
@@ -36,6 +36,14 @@
 #include "gr.h"
 #include "comptype.h"
 
+#ifdef VENUS_COLOR_FORMAT
+#include <media/msm_media_info.h>
+#else
+#define VENUS_Y_STRIDE(args...) 0
+#define VENUS_Y_SCANLINES(args...) 0
+#define VENUS_BUFFER_SIZE(args...) 0
+#endif
+
 using namespace gralloc;
 using namespace qdutils;
 
diff --git a/libgralloc/fb_priv.h b/libgralloc/fb_priv.h
index 8f1a09b..9b08dd5 100644
--- a/libgralloc/fb_priv.h
+++ b/libgralloc/fb_priv.h
@@ -45,7 +45,6 @@
     pthread_mutex_t lock;
     private_handle_t *currentBuffer;
     struct fb_var_screeninfo info;
-    struct mdp_buf_fence fence;
     struct mdp_display_commit commit;
     struct fb_fix_screeninfo finfo;
     float xdpi;
diff --git a/libgralloc/framebuffer.cpp b/libgralloc/framebuffer.cpp
index 57df5b1..1193a27 100644
--- a/libgralloc/framebuffer.cpp
+++ b/libgralloc/framebuffer.cpp
@@ -154,7 +154,6 @@
     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;
@@ -329,7 +328,7 @@
     size_t fbSize = roundUpToPageSize(finfo.line_length * info.yres)*
                     module->numBuffers;
     module->framebuffer = new private_handle_t(fd, fbSize,
-                                        private_handle_t::PRIV_FLAGS_USES_PMEM,
+                                        private_handle_t::PRIV_FLAGS_USES_ION,
                                         BUFFER_TYPE_UI,
                                         module->fbFormat, info.xres, info.yres);
     void* vaddr = mmap(0, fbSize, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
diff --git a/libgralloc/gpu.cpp b/libgralloc/gpu.cpp
index c238264..f79841c 100644
--- a/libgralloc/gpu.cpp
+++ b/libgralloc/gpu.cpp
@@ -83,15 +83,14 @@
         return -ENOMEM;
     }
 
-    // create a "fake" handles for it
-    // Set the PMEM flag as well, since adreno
-    // treats the FB memory as pmem
+    // create a "fake" handle for it
     intptr_t vaddr = intptr_t(m->framebuffer->base);
-    private_handle_t* hnd = new private_handle_t(dup(m->framebuffer->fd), bufferSize,
-                                                 private_handle_t::PRIV_FLAGS_USES_PMEM |
-                                                 private_handle_t::PRIV_FLAGS_FRAMEBUFFER,
-                                                 BUFFER_TYPE_UI, m->fbFormat, m->info.xres,
-                                                 m->info.yres);
+    private_handle_t* hnd = new private_handle_t(
+                                dup(m->framebuffer->fd), bufferSize,
+                                private_handle_t::PRIV_FLAGS_USES_ION |
+                                private_handle_t::PRIV_FLAGS_FRAMEBUFFER,
+                                BUFFER_TYPE_UI, m->fbFormat, m->info.xres,
+                                m->info.yres);
 
     // find a free slot
     for (uint32_t i=0 ; i<numBuffers ; i++) {
diff --git a/libhwcomposer/Android.mk b/libhwcomposer/Android.mk
index 24fd2d4..543efd9 100644
--- a/libhwcomposer/Android.mk
+++ b/libhwcomposer/Android.mk
@@ -1,6 +1,7 @@
 LOCAL_PATH := $(call my-dir)
 include $(LOCAL_PATH)/../common.mk
 include $(CLEAR_VARS)
+
 LOCAL_MODULE                  := hwcomposer.$(TARGET_BOARD_PLATFORM)
 LOCAL_MODULE_PATH             := $(TARGET_OUT_SHARED_LIBRARIES)/hw
 LOCAL_MODULE_TAGS             := optional
@@ -8,8 +9,7 @@
 LOCAL_SHARED_LIBRARIES        := $(common_libs) libEGL liboverlay libgenlock \
                                  libexternal libqdutils libhardware_legacy \
                                  libdl libmemalloc libqservice
-
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"hwcomposer\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdhwcomposer\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := hwc.cpp          \
                                  hwc_video.cpp    \
@@ -17,6 +17,6 @@
                                  hwc_uevents.cpp  \
                                  hwc_vsync.cpp    \
                                  hwc_fbupdate.cpp \
-                                 hwc_mdpcomp.cpp  \
+                                 hwc_mdpcomp.cpp
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index 23ffa42..a0a0c82 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -127,8 +127,8 @@
             if(!MDPComp::configure(ctx, list)) {
                 VideoOverlay::prepare(ctx, list, HWC_DISPLAY_PRIMARY);
                 FBUpdate::prepare(ctx, fbLayer, HWC_DISPLAY_PRIMARY);
-                ctx->mLayerCache->updateLayerCache(list);
             }
+            ctx->mLayerCache[HWC_DISPLAY_PRIMARY]->updateLayerCache(list);
         }
     }
     return 0;
@@ -150,6 +150,7 @@
 
             VideoOverlay::prepare(ctx, list, HWC_DISPLAY_EXTERNAL);
             FBUpdate::prepare(ctx, fbLayer, HWC_DISPLAY_EXTERNAL);
+            ctx->mLayerCache[HWC_DISPLAY_EXTERNAL]->updateLayerCache(list);
         }
     }
     return 0;
diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp
index 0ae64da..2f35567 100644
--- a/libhwcomposer/hwc_utils.cpp
+++ b/libhwcomposer/hwc_utils.cpp
@@ -60,7 +60,8 @@
     ctx->mMDP.hasOverlay = qdutils::MDPVersion::getInstance().hasOverlay();
     ctx->mMDP.panel = qdutils::MDPVersion::getInstance().getPanelType();
     ctx->mExtDisplay = new ExternalDisplay(ctx);
-    ctx->mLayerCache = new LayerCache();
+    for (uint32_t i = 0; i < HWC_NUM_DISPLAY_TYPES; i++)
+        ctx->mLayerCache[i] = new LayerCache();
     MDPComp::init(ctx);
 
     pthread_mutex_init(&(ctx->vstate.lock), NULL);
diff --git a/libhwcomposer/hwc_utils.h b/libhwcomposer/hwc_utils.h
index 256b840..d7200b0 100644
--- a/libhwcomposer/hwc_utils.h
+++ b/libhwcomposer/hwc_utils.h
@@ -220,7 +220,7 @@
     qhwc::MDPInfo mMDP;
     qhwc::DisplayAttributes dpyAttr[HWC_NUM_DISPLAY_TYPES];
     qhwc::ListStats listStats[HWC_NUM_DISPLAY_TYPES];
-    qhwc::LayerCache *mLayerCache;
+    qhwc::LayerCache *mLayerCache[HWC_NUM_DISPLAY_TYPES];
     qhwc::LayerProp *layerProp[HWC_NUM_DISPLAY_TYPES];
 
     //Securing in progress indicator
diff --git a/liblight/Android.mk b/liblight/Android.mk
index 93ece2f..40115d5 100644
--- a/liblight/Android.mk
+++ b/liblight/Android.mk
@@ -20,6 +20,7 @@
 LOCAL_SRC_FILES := lights.c
 LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
 LOCAL_SHARED_LIBRARIES := liblog
+LOCAL_CFLAGS := $(common_flags) -DLOG_TAG=\"qdlights\"
 LOCAL_MODULE := lights.$(TARGET_BOARD_PLATFORM)
 LOCAL_MODULE_TAGS := optional
 
diff --git a/liblight/lights.c b/liblight/lights.c
index b9d1e48..2c62744 100644
--- a/liblight/lights.c
+++ b/liblight/lights.c
@@ -16,7 +16,6 @@
 
 
 // #define LOG_NDEBUG 0
-#define LOG_TAG "lights"
 
 #include <cutils/log.h>
 
diff --git a/liboverlay/Android.mk b/liboverlay/Android.mk
index 39244fd..82c6610 100644
--- a/liboverlay/Android.mk
+++ b/liboverlay/Android.mk
@@ -1,12 +1,13 @@
 LOCAL_PATH := $(call my-dir)
 include $(LOCAL_PATH)/../common.mk
 include $(CLEAR_VARS)
+
 LOCAL_MODULE                  := liboverlay
 LOCAL_MODULE_PATH             := $(TARGET_OUT_SHARED_LIBRARIES)
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
 LOCAL_SHARED_LIBRARIES        := $(common_libs) libqdutils libmemalloc
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"overlay\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdoverlay\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES := \
       overlay.cpp \
diff --git a/liboverlay/overlayMdp.cpp b/liboverlay/overlayMdp.cpp
index f4e0b51..48630a5 100644
--- a/liboverlay/overlayMdp.cpp
+++ b/liboverlay/overlayMdp.cpp
@@ -18,9 +18,6 @@
 #include "overlayUtils.h"
 #include "overlayMdp.h"
 
-#undef ALOG_TAG
-#define ALOG_TAG "overlay"
-
 namespace ovutils = overlay::utils;
 namespace overlay {
 
diff --git a/liboverlay/overlayMdssRot.cpp b/liboverlay/overlayMdssRot.cpp
index 39c7f95..cb3c48f 100644
--- a/liboverlay/overlayMdssRot.cpp
+++ b/liboverlay/overlayMdssRot.cpp
@@ -20,6 +20,12 @@
 #include "overlayUtils.h"
 #include "overlayRotator.h"
 
+#ifdef VENUS_COLOR_FORMAT
+#include <media/msm_media_info.h>
+#else
+#define VENUS_BUFFER_SIZE(args...) 0
+#endif
+
 #ifndef MDSS_MDP_ROT_ONLY
 #define MDSS_MDP_ROT_ONLY 0x80
 #endif
@@ -200,12 +206,12 @@
 
 bool MdssRot::close() {
     bool success = true;
-    if(mFd.valid() && (getSessId() > 0)) {
+    if(mFd.valid() && (getSessId() != (uint32_t) MSMFB_NEW_REQUEST)) {
         if(!mdp_wrapper::unsetOverlay(mFd.getFD(), getSessId())) {
             ALOGE("MdssRot::close unsetOverlay failed, fd=%d sessId=%d",
                   mFd.getFD(), getSessId());
-		    success = false;
-	    }
+            success = false;
+        }
     }
 
     if (!mFd.close()) {
diff --git a/libqdutils/Android.mk b/libqdutils/Android.mk
index 61daeac..ed8bed0 100644
--- a/libqdutils/Android.mk
+++ b/libqdutils/Android.mk
@@ -6,8 +6,9 @@
 LOCAL_MODULE_TAGS             := optional
 LOCAL_SHARED_LIBRARIES        := $(common_libs)
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
-LOCAL_CFLAGS                  := $(common_flags)
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdutils\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := profiler.cpp mdp_version.cpp \
                                  idle_invalidator.cpp
+
 include $(BUILD_SHARED_LIBRARY)
diff --git a/libqdutils/profiler.cpp b/libqdutils/profiler.cpp
index a06ec4d..e39b304 100644
--- a/libqdutils/profiler.cpp
+++ b/libqdutils/profiler.cpp
@@ -27,7 +27,6 @@
  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#define LOG_TAG "CALCFPS"
 #define LOG_NDDEBUG 0
 #include "profiler.h"
 
diff --git a/libqservice/Android.mk b/libqservice/Android.mk
index ee1fe21..8e82f42 100644
--- a/libqservice/Android.mk
+++ b/libqservice/Android.mk
@@ -1,12 +1,13 @@
 LOCAL_PATH := $(call my-dir)
 include $(LOCAL_PATH)/../common.mk
 include $(CLEAR_VARS)
+
 LOCAL_MODULE                  := libqservice
 LOCAL_MODULE_PATH             := $(TARGET_OUT_SHARED_LIBRARIES)
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := $(common_includes) $(kernel_includes)
 LOCAL_SHARED_LIBRARIES        := $(common_libs) libexternal libbinder
-LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qService\"
+LOCAL_CFLAGS                  := $(common_flags) -DLOG_TAG=\"qdqservice\"
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := QService.cpp \
                                  IQService.cpp
diff --git a/libtilerenderer/Android.mk b/libtilerenderer/Android.mk
index af8f25f..ca17fbc 100644
--- a/libtilerenderer/Android.mk
+++ b/libtilerenderer/Android.mk
@@ -5,6 +5,7 @@
 ifeq ($(USE_OPENGL_RENDERER),true)
 LOCAL_MODULE           := libtilerenderer
 LOCAL_MODULE_TAGS      := optional
+LOCAL_CFLAGS           := -DLOG_TAG=\"qdtilerenderer\"
 LOCAL_C_INCLUDES := \
         frameworks/base/include/utils \
         frameworks/base/libs/hwui \
@@ -15,8 +16,8 @@
         external/skia/include/utils \
         hardware/libhardware/include/hardware \
         frameworks/base/opengl/include/GLES2
-
 LOCAL_SHARED_LIBRARIES := $(common_libs) libGLESv2 libhwui
 LOCAL_SRC_FILES        := tilerenderer.cpp
+
 include $(BUILD_SHARED_LIBRARY)
 endif
