Merge "Switch to OV_MDP_PIPE_DMA only for delta panel" into cw-e-dev am: f317914

am: f9eddfa

* commit 'f9eddfa16d00bbd19be3674acf4f892da6912359':
  Switch to OV_MDP_PIPE_DMA only for delta panel

Change-Id: I9e1ba597581daa5dda5044cc77e139187d33b49c
This commit is contained in:
Chenjie Luo 2016-04-12 23:43:52 +00:00 committed by android-build-merger
commit 2c58a97dcc
2 changed files with 18 additions and 6 deletions

View File

@ -19,4 +19,8 @@ LOCAL_SRC_FILES := \
overlayWriteback.cpp \
pipes/overlayGenPipe.cpp
ifeq ($(TARGET_USES_DELTA_PANEL),true)
LOCAL_CFLAGS += -DDELTA_PANEL
endif #TARGET_USES_DELTA_PANEL
include $(BUILD_SHARED_LIBRARY)

View File

@ -39,6 +39,8 @@ namespace overlay {
using namespace utils;
using namespace qdutils;
static bool is_delta_panel = false;
Overlay::Overlay() {
int numPipes = qdutils::MDPVersion::getInstance().getTotalPipes();
PipeBook::NUM_PIPES = (numPipes <= utils::OV_MAX)? numPipes : utils::OV_MAX;
@ -49,6 +51,15 @@ Overlay::Overlay() {
mDumpStr[0] = '\0';
initScalar();
setDMAMultiplexingSupported();
#ifdef DELTA_PANEL
char property[PROPERTY_VALUE_MAX];
if((property_get("ro.hwc.is_delta_panel", property, NULL) > 0) &&
(!strncmp(property, "1", PROPERTY_VALUE_MAX ) ||
(!strncasecmp(property,"true", PROPERTY_VALUE_MAX )))) {
is_delta_panel = true;
}
#endif
}
Overlay::~Overlay() {
@ -214,9 +225,9 @@ utils::eDest Overlay::getPipe_8x26(const PipeSpecs& pipeSpecs) {
} else { //FB layer
//For 8x26 Secondary we use DMA always for FB for inline rotation
if(pipeSpecs.dpy == DPY_PRIMARY) {
/* For wearable targets, secondary display is not applicable
Try for DMA pipe for FB first, if FB does not have scaling*/
if (not pipeSpecs.needsScaling) {
if (is_delta_panel && not pipeSpecs.needsScaling) {
/* For wearable targets, secondary display is not applicable
Try for DMA pipe for FB first, if FB does not have scaling*/
dest = nextPipe(OV_MDP_PIPE_DMA, pipeSpecs.dpy, pipeSpecs.mixer);
}
if (dest == OV_INVALID) {
@ -233,9 +244,6 @@ utils::eDest Overlay::getPipe_8x26(const PipeSpecs& pipeSpecs) {
dest = nextPipe(OV_MDP_PIPE_DMA, pipeSpecs.dpy, pipeSpecs.mixer);
}
}
if (dest == OV_INVALID) {
ALOGE("%s - not able to allocate FB pipe", __func__);
}
return dest;
}