diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index ac4a0c2..33036e6 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -78,6 +78,10 @@
 #include "RenderEngine/RenderEngine.h"
 #include <cutils/compiler.h>
 
+#ifdef QCOM_BSP
+#include <display_config.h>
+#endif
+
 #define DISPLAY_COUNT       1
 
 /*
@@ -1319,12 +1323,15 @@
                                 || (state.viewport != draw[i].viewport)
                                 || (state.frame != draw[i].frame))
                         {
+#ifdef QCOM_BSP
+                            int orient = state.orientation;
                             // Honor the orientation change after boot
                             // animation completes and make sure boot
                             // animation is shown in panel orientation always.
                             if(mBootFinished){
                                 disp->setProjection(state.orientation,
                                         state.viewport, state.frame);
+                                orient = state.orientation;
                             }
                             else{
                                 char property[PROPERTY_VALUE_MAX];
@@ -1336,8 +1343,19 @@
                                 }
                                 disp->setProjection(panelOrientation,
                                         state.viewport, state.frame);
-
+                                orient = panelOrientation;
                             }
+                            // Set the view frame of each display only of its
+                            // default orientation.
+                            if(orient == DisplayState::eOrientationDefault) {
+                                qdutils::setViewFrame(disp->getHwcDisplayId(),
+                                    state.frame.left, state.frame.top,
+                                    state.frame.right, state.frame.bottom);
+                            }
+#else
+                            disp->setProjection(state.orientation,
+                                state.viewport, state.frame);
+#endif
                         }
                         if (state.width != draw[i].width || state.height != draw[i].height) {
                             disp->setDisplaySize(state.width, state.height);
