overlay: Add writeback support
Add explicit writeback display type, writeback ioctls, memory mgmt,
writeback class, writeback obj manager class to overlay.
Change-Id: I171e60cea5ed8f6649859e3eb189df37b39962f1
diff --git a/liboverlay/pipes/overlayGenPipe.cpp b/liboverlay/pipes/overlayGenPipe.cpp
index 3ab0d19..0de7129 100644
--- a/liboverlay/pipes/overlayGenPipe.cpp
+++ b/liboverlay/pipes/overlayGenPipe.cpp
@@ -33,7 +33,7 @@
namespace overlay {
-GenericPipe::GenericPipe(int dpy) : mFbNum(dpy), mRotDownscaleOpt(false),
+GenericPipe::GenericPipe(int dpy) : mDpy(dpy), mRotDownscaleOpt(false),
pipeState(CLOSED) {
init();
}
@@ -46,17 +46,24 @@
{
ALOGE_IF(DEBUG_OVERLAY, "GenericPipe init");
mRotDownscaleOpt = false;
- if(mFbNum)
- mFbNum = Overlay::getInstance()->getExtFbNum();
- ALOGD_IF(DEBUG_OVERLAY,"%s: mFbNum:%d",__FUNCTION__, mFbNum);
+ int fbNum = 0;
+ //TODO Remove the if block. What's in else block should be the standard way
+ //EXTERNAL's meaning has been overloaded in hwc to mean WFD also!
+ if(mDpy == Overlay::DPY_EXTERNAL) {
+ fbNum = Overlay::getInstance()->getExtFbNum();
+ } else if(mDpy == Overlay::DPY_WRITEBACK) {
+ fbNum = Overlay::getFbForDpy(mDpy);
+ }
- if(!mCtrlData.ctrl.init(mFbNum)) {
+ ALOGD_IF(DEBUG_OVERLAY,"%s: mFbNum:%d",__FUNCTION__, fbNum);
+
+ if(!mCtrlData.ctrl.init(fbNum)) {
ALOGE("GenericPipe failed to init ctrl");
return false;
}
- if(!mCtrlData.data.init(mFbNum)) {
+ if(!mCtrlData.data.init(fbNum)) {
ALOGE("GenericPipe failed to init data");
return false;
}