Merge "hwc : Add support for ABC in MDP3"
diff --git a/libcopybit/Android.mk b/libcopybit/Android.mk
index 2ac7d15..c239c3a 100644
--- a/libcopybit/Android.mk
+++ b/libcopybit/Android.mk
@@ -22,7 +22,7 @@
include $(BUILD_COPY_HEADERS)
LOCAL_MODULE := copybit.$(TARGET_BOARD_PLATFORM)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := $(common_includes) $(kernel_includes)
LOCAL_SHARED_LIBRARIES := $(common_libs) libdl libmemalloc
diff --git a/libexternal/Android.mk b/libexternal/Android.mk
index 3df6984..05e42d4 100644
--- a/libexternal/Android.mk
+++ b/libexternal/Android.mk
@@ -3,7 +3,6 @@
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 libqdutils
diff --git a/libgralloc/Android.mk b/libgralloc/Android.mk
index 18beaf2..412f1be 100644
--- a/libgralloc/Android.mk
+++ b/libgralloc/Android.mk
@@ -18,7 +18,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := gralloc.$(TARGET_BOARD_PLATFORM)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := $(common_includes) $(kernel_includes)
LOCAL_SHARED_LIBRARIES := $(common_libs) libmemalloc libqdMetaData
diff --git a/libgralloc/ionalloc.cpp b/libgralloc/ionalloc.cpp
index e6d34f8..2097320 100644
--- a/libgralloc/ionalloc.cpp
+++ b/libgralloc/ionalloc.cpp
@@ -73,11 +73,7 @@
ionAllocData.len = data.size;
ionAllocData.align = data.align;
-#ifdef QCOM_BSP
- ionAllocData.heap_mask = data.flags & ~ION_SECURE;
-#else
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
-#endif
ionAllocData.flags = data.uncached ? 0 : ION_FLAG_CACHED;
// ToDo: replace usage of alloc data structure with
// ionallocdata structure.
diff --git a/libhwcomposer/Android.mk b/libhwcomposer/Android.mk
index 7dadfe4..ef7778b 100644
--- a/libhwcomposer/Android.mk
+++ b/libhwcomposer/Android.mk
@@ -3,7 +3,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := hwcomposer.$(TARGET_BOARD_PLATFORM)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := $(common_includes) $(kernel_includes) \
$(TOP)/external/skia/include/core \
diff --git a/liblight/Android.mk b/liblight/Android.mk
index 40115d5..977fc55 100644
--- a/liblight/Android.mk
+++ b/liblight/Android.mk
@@ -18,7 +18,7 @@
include $(CLEAR_VARS)
LOCAL_SRC_FILES := lights.c
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_CFLAGS := $(common_flags) -DLOG_TAG=\"qdlights\"
LOCAL_MODULE := lights.$(TARGET_BOARD_PLATFORM)
diff --git a/libmemtrack/Android.mk b/libmemtrack/Android.mk
index 306eb07..2fda0b7 100644
--- a/libmemtrack/Android.mk
+++ b/libmemtrack/Android.mk
@@ -18,7 +18,7 @@
# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so
include $(CLEAR_VARS)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_C_INCLUDES += hardware/libhardware/include
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := memtrack_msm.c kgsl.c
diff --git a/liboverlay/Android.mk b/liboverlay/Android.mk
index 277b44c..aa1ea24 100644
--- a/liboverlay/Android.mk
+++ b/liboverlay/Android.mk
@@ -3,7 +3,6 @@
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 \
diff --git a/liboverlay/overlay.cpp b/liboverlay/overlay.cpp
index fe7bd2c..de880c6 100644
--- a/liboverlay/overlay.cpp
+++ b/liboverlay/overlay.cpp
@@ -346,20 +346,8 @@
utils::eDest dest) {
validate((int)dest);
- PipeArgs newArgs(args);
- if(PipeBook::getPipeType(dest) == OV_MDP_PIPE_VG) {
- setMdpFlags(newArgs.mdpFlags, OV_MDP_PIPE_SHARE);
- } else {
- clearMdpFlags(newArgs.mdpFlags, OV_MDP_PIPE_SHARE);
- }
-
- if(PipeBook::getPipeType(dest) == OV_MDP_PIPE_DMA) {
- setMdpFlags(newArgs.mdpFlags, OV_MDP_PIPE_FORCE_DMA);
- } else {
- clearMdpFlags(newArgs.mdpFlags, OV_MDP_PIPE_FORCE_DMA);
- }
-
- mPipeBook[dest].mPipe->setSource(newArgs);
+ setPipeType(dest, PipeBook::getPipeType(dest));
+ mPipeBook[dest].mPipe->setSource(args);
}
void Overlay::setVisualParams(const MetaData_t& metadata, utils::eDest dest) {
@@ -367,6 +355,11 @@
mPipeBook[dest].mPipe->setVisualParams(metadata);
}
+void Overlay::setPipeType(utils::eDest pipeIndex,
+ const utils::eMdpPipeType pType) {
+ mPipeBook[pipeIndex].mPipe->setPipeType(pType);
+}
+
Overlay* Overlay::getInstance() {
if(sInstance == NULL) {
sInstance = new Overlay();
diff --git a/liboverlay/overlay.h b/liboverlay/overlay.h
index 99186db..c8f68b0 100644
--- a/liboverlay/overlay.h
+++ b/liboverlay/overlay.h
@@ -179,6 +179,8 @@
static void initScalar();
/* Destroys the scalar object using libscale.so */
static void destroyScalar();
+ /* Sets the pipe type RGB/VG/DMA*/
+ void setPipeType(utils::eDest pipeIndex, const utils::eMdpPipeType pType);
/* Just like a Facebook for pipes, but much less profile info */
struct PipeBook {
diff --git a/liboverlay/overlayCtrlData.h b/liboverlay/overlayCtrlData.h
index 51209a7..5cadebd 100644
--- a/liboverlay/overlayCtrlData.h
+++ b/liboverlay/overlayCtrlData.h
@@ -65,6 +65,8 @@
void setPosition(const utils::Dim& dim);
/* set mdp visual params using metadata */
bool setVisualParams(const MetaData_t &metadata);
+ /* set pipe type RGB/DMA/VG */
+ void setPipeType(const utils::eMdpPipeType& pType);
/* mdp set overlay/commit changes */
bool commit();
@@ -159,6 +161,11 @@
return true;
}
+inline void Ctrl::setPipeType(const utils::eMdpPipeType& pType)
+{
+ mMdp->setPipeType(pType);
+}
+
inline void Ctrl::dump() const {
ALOGE("== Dump Ctrl start ==");
mMdp->dump();
diff --git a/liboverlay/overlayMdp.cpp b/liboverlay/overlayMdp.cpp
index c4427ae..4622d16 100644
--- a/liboverlay/overlayMdp.cpp
+++ b/liboverlay/overlayMdp.cpp
@@ -120,6 +120,23 @@
mOrientation = static_cast<utils::eTransform>(rot);
}
+void MdpCtrl::setPipeType(const utils::eMdpPipeType& pType){
+ switch((int) pType){
+ case utils::OV_MDP_PIPE_RGB:
+ mOVInfo.pipe_type = PIPE_TYPE_RGB;
+ break;
+ case utils::OV_MDP_PIPE_VG:
+ mOVInfo.pipe_type = PIPE_TYPE_VIG;
+ break;
+ case utils::OV_MDP_PIPE_DMA:
+ mOVInfo.pipe_type = PIPE_TYPE_DMA;
+ break;
+ default:
+ mOVInfo.pipe_type = PIPE_TYPE_AUTO;
+ break;
+ }
+}
+
void MdpCtrl::doTransform() {
setRotationFlags();
utils::Whf whf = getSrcWhf();
diff --git a/liboverlay/overlayMdp.h b/liboverlay/overlayMdp.h
index d312c2e..f7d64f0 100644
--- a/liboverlay/overlayMdp.h
+++ b/liboverlay/overlayMdp.h
@@ -84,6 +84,8 @@
uint8_t getPriority() const;
/* setVisualParam */
bool setVisualParams(const MetaData_t& data);
+ /* sets pipe type RGB/DMA/VG */
+ void setPipeType(const utils::eMdpPipeType& pType);
static bool validateAndSet(MdpCtrl* mdpCtrlArray[], const int& count,
const int& fbFd);
diff --git a/liboverlay/pipes/overlayGenPipe.cpp b/liboverlay/pipes/overlayGenPipe.cpp
index 303cd34..41cb271 100644
--- a/liboverlay/pipes/overlayGenPipe.cpp
+++ b/liboverlay/pipes/overlayGenPipe.cpp
@@ -68,6 +68,10 @@
return mCtrl->setVisualParams(metadata);
}
+void GenericPipe::setPipeType(const utils::eMdpPipeType& pType) {
+ mCtrl->setPipeType(pType);
+}
+
bool GenericPipe::commit() {
bool ret = false;
int downscale_factor = utils::ROT_DS_NONE;
diff --git a/liboverlay/pipes/overlayGenPipe.h b/liboverlay/pipes/overlayGenPipe.h
index ee6f9ad..c7e16f3 100644
--- a/liboverlay/pipes/overlayGenPipe.h
+++ b/liboverlay/pipes/overlayGenPipe.h
@@ -54,6 +54,8 @@
void setPosition(const utils::Dim& dim);
/* set visual param */
bool setVisualParams(const MetaData_t &metadata);
+ /* set pipe type RGB/DMA/VG */
+ void setPipeType(const utils::eMdpPipeType& pType);
/* commit changes to the overlay "set"*/
bool commit();
/* Data APIs */
diff --git a/libqdutils/Android.mk b/libqdutils/Android.mk
index 2907ccf..212c8d8 100644
--- a/libqdutils/Android.mk
+++ b/libqdutils/Android.mk
@@ -21,7 +21,6 @@
LOCAL_COPY_HEADERS_TO := $(common_header_export_path)
LOCAL_COPY_HEADERS := qdMetaData.h
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_C_INCLUDES := $(common_includes)
LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
diff --git a/libqservice/Android.mk b/libqservice/Android.mk
index 0c6123b..78b1d77 100644
--- a/libqservice/Android.mk
+++ b/libqservice/Android.mk
@@ -3,7 +3,6 @@
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) libbinder
diff --git a/libvirtual/Android.mk b/libvirtual/Android.mk
index beeef25..a41ef33 100644
--- a/libvirtual/Android.mk
+++ b/libvirtual/Android.mk
@@ -3,7 +3,6 @@
include $(CLEAR_VARS)
LOCAL_MODULE := libvirtual
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := $(common_includes) $(kernel_includes)
LOCAL_SHARED_LIBRARIES := $(common_libs) liboverlay libqdutils