Merge "gralloc: set ION_SECURE to flags instead of heap_mask during ion alloc."
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