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 653468d..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;
diff --git a/libgralloc/ionalloc.cpp b/libgralloc/ionalloc.cpp
index 8af5a96..b9b9717 100644
--- a/libgralloc/ionalloc.cpp
+++ b/libgralloc/ionalloc.cpp
@@ -66,8 +66,6 @@
 {
     Locker::Autolock _l(mLock);
     int err = 0;
-    int ionSyncFd = FD_INIT;
-    int iFd = FD_INIT;
     struct ion_handle_data handle_data;
     struct ion_fd_data fd_data;
     struct ion_allocation_data ionAllocData;
@@ -76,45 +74,26 @@
 
     ionAllocData.len = data.size;
     ionAllocData.align = data.align;
-    ionAllocData.flags = data.flags;
+    ionAllocData.heap_mask = data.flags;
+    ionAllocData.flags = data.uncached ? 0 : ION_FLAG_CACHED;
 
     err = open_device();
     if (err)
         return err;
 
-    if(data.uncached) {
-        // Use the sync FD to alloc and map
-        // when we need uncached memory
-        ionSyncFd = open(ION_DEVICE, O_RDONLY|O_DSYNC);
-        if(ionSyncFd < 0) {
-            ALOGE("%s: Failed to open ion device - %s",
-                  __FUNCTION__, strerror(errno));
-            return -errno;
-        }
-        iFd = ionSyncFd;
-    } else {
-        iFd = mIonFd;
-    }
-
-    if(ioctl(iFd, ION_IOC_ALLOC, &ionAllocData)) {
+    if(ioctl(mIonFd, ION_IOC_ALLOC, &ionAllocData)) {
         err = -errno;
         ALOGE("ION_IOC_ALLOC failed with error - %s", strerror(errno));
-        if(ionSyncFd >= 0)
-            close(ionSyncFd);
-        ionSyncFd = FD_INIT;
         return err;
     }
 
     fd_data.handle = ionAllocData.handle;
     handle_data.handle = ionAllocData.handle;
-    if(ioctl(iFd, ION_IOC_MAP, &fd_data)) {
+    if(ioctl(mIonFd, ION_IOC_MAP, &fd_data)) {
         err = -errno;
         ALOGE("%s: ION_IOC_MAP failed with error - %s",
               __FUNCTION__, strerror(errno));
         ioctl(mIonFd, ION_IOC_FREE, &handle_data);
-        if(ionSyncFd >= 0)
-            close(ionSyncFd);
-        ionSyncFd = FD_INIT;
         return err;
     }
 
@@ -126,7 +105,6 @@
             ALOGE("%s: Failed to map the allocated memory: %s",
                   __FUNCTION__, strerror(errno));
             ioctl(mIonFd, ION_IOC_FREE, &handle_data);
-            ionSyncFd = FD_INIT;
             return err;
         }
         memset(base, 0, ionAllocData.len);
@@ -134,11 +112,6 @@
         clean_buffer(base, data.size, data.offset, fd_data.fd);
     }
 
-    //Close the uncached FD since we no longer need it;
-    if(ionSyncFd >= 0)
-        close(ionSyncFd);
-    ionSyncFd = FD_INIT;
-
     data.base = base;
     data.fd = fd_data.fd;
     ioctl(mIonFd, ION_IOC_FREE, &handle_data);
@@ -225,9 +198,15 @@
     flush_data.vaddr   = base;
     flush_data.offset  = offset;
     flush_data.length  = size;
-    if(ioctl(mIonFd, ION_IOC_CLEAN_INV_CACHES, &flush_data)) {
+
+    struct ion_custom_data d;
+    d.cmd = ION_IOC_CLEAN_INV_CACHES;
+    d.arg = (unsigned long int)&flush_data;
+
+    if(ioctl(mIonFd, ION_IOC_CUSTOM, &d)) {
         err = -errno;
         ALOGE("%s: ION_IOC_CLEAN_INV_CACHES failed with error - %s",
+
               __FUNCTION__, strerror(errno));
         ioctl(mIonFd, ION_IOC_FREE, &handle_data);
         return err;
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
