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:
commit
2c58a97dcc
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue