Revert "hwc: Do not re-program H/W, if the frame geometry has not changed"

This reverts commit 5e268fcf56e7f5bd0fc524d50c0a97c9e34010a1.

Reason: Breaking cache based composition strategy and partial
update feature.

Change-Id: I0c881c8e2bc6be2a0b3dc0d5e7d22a388179f8d8
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index a2c7ad3..e4f7f5f 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -260,48 +260,6 @@
     }
 }
 
-static bool optimizePrepare(hwc_context_t *ctx, int numDisplays,
-                            hwc_display_contents_1_t** displays) {
-
-    /* Do not re-program H/W, if frame geometry has not changed.
-     * But honor these exceptions:
-     * 1. Padding round
-     * 2. Idle fallback
-     * 3. Overlay is not configured
-     * 4. External/Virtual display is in Configure state
-     * 5. External/Virtual is Paused OR not connected/active
-     * 6. Non-Overlay device
-     */
-
-    if (ctx->isPaddingRound || MDPComp::isIdleFallback() ||
-        !ctx->mOverlay->isConfigured() || isSecondaryConfiguring(ctx) ||
-        ctx->mMDP.version < qdutils::MDP_V4_0) {
-        return false;
-    }
-
-    bool isOptimized = false;
-    for (uint32_t i = 0; i < numDisplays; i++) {
-        hwc_display_contents_1_t *list = displays[i];
-
-        if (list) {
-            if (list->flags & HWC_GEOMETRY_CHANGED) {
-                return false;
-            }
-            int dpy = getDpyforExternalDisplay(ctx, i);
-            if (dpy && (ctx->dpyAttr[dpy].isPause ||
-                !ctx->dpyAttr[dpy].connected ||
-                !ctx->dpyAttr[dpy].isActive)) {
-                return false;
-            }
-            // Set layer composition type as per last frame
-            ctx->mMDPComp[dpy]->setMDPCompLayerFlags(ctx, list);
-            isOptimized = true;
-        }
-    }
-
-    return isOptimized;
-}
-
 static int hwc_prepare_primary(hwc_composer_device_1 *dev,
         hwc_display_contents_1_t *list) {
     ATRACE_CALL();
@@ -387,12 +345,6 @@
     setPaddingRound(ctx,numDisplays,displays);
     setDMAState(ctx,numDisplays,displays);
     setNumActiveDisplays(ctx,numDisplays,displays);
-
-    if (optimizePrepare(ctx, numDisplays, displays)) {
-        // Do not re-program H/W, if it is not needed
-        return ret;
-    }
-
     reset(ctx, (int)numDisplays, displays);
 
     ctx->mOverlay->configBegin();
diff --git a/libhwcomposer/hwc_mdpcomp.h b/libhwcomposer/hwc_mdpcomp.h
index 7d4214a..8186fff 100644
--- a/libhwcomposer/hwc_mdpcomp.h
+++ b/libhwcomposer/hwc_mdpcomp.h
@@ -54,9 +54,6 @@
     static void resetIdleFallBack() { sIdleFallBack = false; }
     static void reset() { sHandleTimeout = false; };
     static bool isIdleFallback() { return sIdleFallBack; }
-    /* set/reset flags for MDPComp */
-    void setMDPCompLayerFlags(hwc_context_t *ctx,
-                              hwc_display_contents_1_t* list);
 
 protected:
     enum { MAX_SEC_LAYERS = 1 }; //TODO add property support
@@ -145,6 +142,9 @@
     /* configures 4kx2k yuv layer*/
     virtual int configure4k2kYuv(hwc_context_t *ctx, hwc_layer_1_t *layer,
             PipeLayerPair& PipeLayerPair) = 0;
+    /* set/reset flags for MDPComp */
+    void setMDPCompLayerFlags(hwc_context_t *ctx,
+                              hwc_display_contents_1_t* list);
     void setRedraw(hwc_context_t *ctx,
             hwc_display_contents_1_t* list);
     /* checks for conditions where mdpcomp is not possible */
diff --git a/liboverlay/overlay.h b/liboverlay/overlay.h
index 17c75e8..455f547 100644
--- a/liboverlay/overlay.h
+++ b/liboverlay/overlay.h
@@ -140,8 +140,6 @@
     void clear(int dpy);
     /* Validate the set of pipes for a display and set them in driver */
     bool validateAndSet(const int& dpy, const int& fbFd);
-    /* Returns true if PipeBook has been configured, false otherwise */
-    bool isConfigured();
 
     /* Closes open pipes, called during startup */
     static int initOverlay();
@@ -206,7 +204,6 @@
         static void resetAllocation(int index);
         static bool isAllocated(int index);
         static bool isNotAllocated(int index);
-        static bool isConfigured();
 
         static utils::eMdpPipeType getPipeType(utils::eDest dest);
         static const char* getDestStr(utils::eDest dest);
@@ -409,14 +406,6 @@
     return "Invalid";
 }
 
-inline bool Overlay::PipeBook::isConfigured() {
-    return (sAllocatedBitmap != 0);
-}
-
-inline bool Overlay::isConfigured() {
-    return PipeBook::isConfigured();
-}
-
 }; // overlay
 
 #endif // OVERLAY_H