hwc: Check for downscale support only when needed

Check for downscale support only for layers which needs to
be downscaled. Fixes issue where we bail out for all layers having
width more than MAX_LAYER_WIDTH even when they don't need scaling.

Change-Id: I19ee4d69e986390ed3df122b8ca9c0e102f3f916
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index 8eece52..bc2f86f 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -323,23 +323,25 @@
     if((crop_w < 5)||(crop_h < 5))
         return false;
 
-    const uint32_t downscale =
+    if((w_dscale > 1.0f) || (h_dscale > 1.0f)) {
+        const uint32_t downscale =
             qdutils::MDPVersion::getInstance().getMaxMDPDownscale();
-    if(ctx->mMDP.version >= qdutils::MDSS_V5) {
-        /* Workaround for downscales larger than 4x.
-         * Will be removed once decimator block is enabled for MDSS
-         */
-        if(!qdutils::MDPVersion::getInstance().supportsDecimation()) {
-            if(crop_w > MAX_DISPLAY_DIM || w_dscale > downscale ||
-                    h_dscale > downscale)
-                return false;
-        } else {
-            if(w_dscale > 64 || h_dscale > 64)
+        if(ctx->mMDP.version >= qdutils::MDSS_V5) {
+            /* Workaround for downscales larger than 4x.
+             * Will be removed once decimator block is enabled for MDSS
+             */
+            if(!qdutils::MDPVersion::getInstance().supportsDecimation()) {
+                if(crop_w > MAX_DISPLAY_DIM || w_dscale > downscale ||
+                   h_dscale > downscale)
+                    return false;
+            } else {
+                if(w_dscale > 64 || h_dscale > 64)
+                    return false;
+            }
+        } else { //A-family
+            if(w_dscale > downscale || h_dscale > downscale)
                 return false;
         }
-    } else { //A-family
-        if(w_dscale > downscale || h_dscale > downscale)
-            return false;
     }
 
     return true;