overlay: MDSS cannot handle 1-pixel downscaling for UI layer.

As MDSS cannot handle 1-pixel downscaling for UI layer, decrease
src crop by 1 pixel in such cases.

Change-Id: Ifc1f3a8e416c48db4b09d2ab0838927952e263ed
diff --git a/liboverlay/overlayMdp.cpp b/liboverlay/overlayMdp.cpp
index 61bfb19..2d88376 100644
--- a/liboverlay/overlayMdp.cpp
+++ b/liboverlay/overlayMdp.cpp
@@ -167,7 +167,6 @@
     int mdpVersion = MDPVersion::getInstance().getMDPVersion();
     //deferred calcs, so APIs could be called in any order.
     doTransform();
-    doDownscale();
     utils::Whf whf = getSrcWhf();
     if(utils::isYuv(whf.format)) {
         utils::normalizeCrop(mOVInfo.src_rect.x, mOVInfo.src_rect.w);
@@ -181,8 +180,18 @@
                 (mOVInfo.src_rect.h % 4))
                 mOVInfo.src_rect.h = utils::aligndown(mOVInfo.src_rect.h, 4);
         }
+    } else {
+        if (mdpVersion >= MDSS_V5) {
+            // Check for 1-pixel down-scaling
+            if (mOVInfo.src_rect.w - mOVInfo.dst_rect.w == 1)
+                mOVInfo.src_rect.w -= 1;
+            if (mOVInfo.src_rect.h - mOVInfo.dst_rect.h == 1)
+                mOVInfo.src_rect.h -= 1;
+        }
     }
 
+    doDownscale();
+
     if(this->ovChanged() || mForceSet) {
         mForceSet = false;
         if(!mdp_wrapper::setOverlay(mFd.getFD(), mOVInfo)) {