Snap for 4807121 from 029637199175c85b6c75ffd63d145efe0f202974 to pi-release

Change-Id: I76f343253581eadb11aeea9a37228358e98be8bf
diff --git a/msm8996/sdm/libs/hwc2/hwc_display.cpp b/msm8996/sdm/libs/hwc2/hwc_display.cpp
index 507eff5..97652d1 100644
--- a/msm8996/sdm/libs/hwc2/hwc_display.cpp
+++ b/msm8996/sdm/libs/hwc2/hwc_display.cpp
@@ -135,7 +135,8 @@
 
   // if the mode count is 1, then only native mode is supported, so just apply matrix w/o
   // setting mode
-  if (color_mode_transform_map_.size() > 1U) {
+  if ((color_mode_transform_map_.size() > 1U && current_color_mode_ != mode) ||
+      (current_color_transform_ != hint)) {
     color_mode_transform = color_mode_transform_map_[mode][transform_hint];
     DisplayError error = display_intf_->SetColorMode(color_mode_transform);
     if (error != kErrorNone) {
@@ -143,7 +144,10 @@
       // failure to force client composition
       return HWC2::Error::Unsupported;
     }
+    DLOGI("Setting Color Mode = %d Transform Hint = %d Success", mode, hint);
   }
+  current_color_mode_ = mode;
+  current_color_transform_ = hint;
 
   if (use_matrix) {
     DisplayError error = display_intf_->SetColorTransform(kColorTransformMatrixCount, matrix);
@@ -154,10 +158,7 @@
     }
   }
 
-  current_color_mode_ = mode;
-  current_color_transform_ = hint;
   CopyColorTransformMatrix(matrix, color_matrix_);
-  DLOGV_IF(kTagQDCM, "Setting Color Mode = %d Transform Hint = %d Success", mode, hint);
 
   return HWC2::Error::None;
 }
diff --git a/msm8996/sdm/libs/hwc2/hwc_display.h b/msm8996/sdm/libs/hwc2/hwc_display.h
index 9343209..b8fef4f 100644
--- a/msm8996/sdm/libs/hwc2/hwc_display.h
+++ b/msm8996/sdm/libs/hwc2/hwc_display.h
@@ -79,7 +79,10 @@
   android_color_transform_t current_color_transform_ = HAL_COLOR_TRANSFORM_IDENTITY;
   typedef std::map<android_color_transform_t, std::string> TransformMap;
   std::map<android_color_mode_t, TransformMap> color_mode_transform_map_ = {};
-  double color_matrix_[kColorTransformMatrixCount] = {0};
+  double color_matrix_[kColorTransformMatrixCount] = { 1.0, 0.0, 0.0, 0.0, \
+                                                       0.0, 1.0, 0.0, 0.0, \
+                                                       0.0, 0.0, 1.0, 0.0, \
+                                                       0.0, 0.0, 0.0, 1.0 };
 };
 
 class HWCDisplay : public DisplayEventHandler {