Merge "hwc: split display: Fix left split default value if not published"
diff --git a/libhwcomposer/hwc_fbupdate.cpp b/libhwcomposer/hwc_fbupdate.cpp
index 7ba2ddc..ba3b5d2 100644
--- a/libhwcomposer/hwc_fbupdate.cpp
+++ b/libhwcomposer/hwc_fbupdate.cpp
@@ -288,16 +288,8 @@
         hwc_rect_t displayFrame = layer->displayFrame;
 
         const float xres = ctx->dpyAttr[mDpy].xres;
-        //Default even split for all displays with high res
-        float lSplit = xres / 2;
-        if(mDpy == HWC_DISPLAY_PRIMARY &&
-                qdutils::MDPVersion::getInstance().getLeftSplit()) {
-            //Override if split published by driver for primary
-            lSplit = qdutils::MDPVersion::getInstance().getLeftSplit();
-        }
-
+        const int lSplit = getLeftSplit(ctx, mDpy);
         const float lSplitRatio = lSplit / xres;
-
         const float lCropWidth =
                 (sourceCrop.right - sourceCrop.left) * lSplitRatio;
 
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index 462cc6d..69e81db 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -980,13 +980,8 @@
         int mixer) {
     int pipesNeeded = 0;
     const int xres = ctx->dpyAttr[mDpy].xres;
-    //Default even split for all displays with high res
-    int lSplit = xres / 2;
-    if(mDpy == HWC_DISPLAY_PRIMARY &&
-            qdutils::MDPVersion::getInstance().getLeftSplit()) {
-        //Override if split published by driver for primary
-        lSplit = qdutils::MDPVersion::getInstance().getLeftSplit();
-    }
+
+    const int lSplit = getLeftSplit(ctx, mDpy);
 
     for(int i = 0; i < mCurrentFrame.layerCount; ++i) {
         if(!mCurrentFrame.isFBComposed[i]) {
@@ -1028,13 +1023,7 @@
         MdpPipeInfoHighRes& pipe_info,
         ePipeType type) {
     const int xres = ctx->dpyAttr[mDpy].xres;
-    //Default even split for all displays with high res
-    int lSplit = xres / 2;
-    if(mDpy == HWC_DISPLAY_PRIMARY &&
-            qdutils::MDPVersion::getInstance().getLeftSplit()) {
-        //Override if split published by driver for primary
-        lSplit = qdutils::MDPVersion::getInstance().getLeftSplit();
-    }
+    const int lSplit = getLeftSplit(ctx, mDpy);
 
     hwc_rect_t dst = layer->displayFrame;
     pipe_info.lIndex = ovutils::OV_INVALID;
diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp
index 93017c5..1c881cb 100644
--- a/libhwcomposer/hwc_utils.cpp
+++ b/libhwcomposer/hwc_utils.cpp
@@ -1090,7 +1090,8 @@
     hwc_rect_t tmp_cropL, tmp_dstL;
     hwc_rect_t tmp_cropR, tmp_dstR;
 
-    const int lSplit = qdutils::MDPVersion::getInstance().getLeftSplit();
+    const int lSplit = getLeftSplit(ctx, dpy);
+
     if(lDest != OV_INVALID) {
         tmp_cropL = crop;
         tmp_dstL = dst;
@@ -1166,6 +1167,16 @@
     return true;
 }
 
+int getLeftSplit(hwc_context_t *ctx, const int& dpy) {
+    //Default even split for all displays with high res
+    int lSplit = ctx->dpyAttr[dpy].xres / 2;
+    if(dpy == HWC_DISPLAY_PRIMARY &&
+            qdutils::MDPVersion::getInstance().getLeftSplit()) {
+        //Override if split published by driver for primary
+        lSplit = qdutils::MDPVersion::getInstance().getLeftSplit();
+    }
+    return lSplit;
+}
 
 void BwcPM::setBwc(hwc_context_t *ctx, const hwc_rect_t& crop,
             const hwc_rect_t& dst, const int& transform,
diff --git a/libhwcomposer/hwc_utils.h b/libhwcomposer/hwc_utils.h
index cf359ee..e214aee 100644
--- a/libhwcomposer/hwc_utils.h
+++ b/libhwcomposer/hwc_utils.h
@@ -225,6 +225,8 @@
 //but the variety of scenarios is too high to warrant that.
 bool canUseRotator(hwc_context_t *ctx);
 
+int getLeftSplit(hwc_context_t *ctx, const int& dpy);
+
 // Inline utility functions
 static inline bool isSkipLayer(const hwc_layer_1_t* l) {
     return (UNLIKELY(l && (l->flags & HWC_SKIP_LAYER)));