Merge "sdm: Add support for minimum encryption level settings for HDCP." into dev-1.0
diff --git a/sdm/include/private/resource_interface.h b/sdm/include/private/resource_interface.h
index bc1a37d..260bcf4 100644
--- a/sdm/include/private/resource_interface.h
+++ b/sdm/include/private/resource_interface.h
@@ -45,7 +45,8 @@
   virtual void Purge(Handle display_ctx) = 0;
   virtual DisplayError SetMaxMixerStages(Handle display_ctx, uint32_t max_mixer_stages) = 0;
   virtual DisplayError ValidateScaling(const LayerRect &crop, const LayerRect &dst,
-                                       bool rotate90, bool ubwc_tiled) = 0;
+                                       bool rotate90, bool ubwc_tiled,
+                                       bool use_rotator_downscale) = 0;
   virtual DisplayError ValidateCursorConfig(Handle display_ctx, const Layer &layer,
                                             bool is_top) = 0;
   virtual DisplayError ValidateCursorPosition(Handle display_ctx, HWLayers *hw_layers,
diff --git a/sdm/libs/core/comp_manager.cpp b/sdm/libs/core/comp_manager.cpp
index 9e1b277..2c64875 100644
--- a/sdm/libs/core/comp_manager.cpp
+++ b/sdm/libs/core/comp_manager.cpp
@@ -393,7 +393,8 @@
 
 DisplayError CompManager::ValidateScaling(const LayerRect &crop, const LayerRect &dst,
                                           bool rotate90) {
-  return resource_intf_->ValidateScaling(crop, dst, rotate90, Debug::IsUbwcTiledFrameBuffer());
+  return resource_intf_->ValidateScaling(crop, dst, rotate90, Debug::IsUbwcTiledFrameBuffer(),
+                                         true /* use_rotator_downscale */);
 }
 
 DisplayError CompManager::ValidateCursorPosition(Handle display_ctx, HWLayers *hw_layers,
diff --git a/sdm/libs/core/resource_default.cpp b/sdm/libs/core/resource_default.cpp
index 8c67b82..6efe078 100644
--- a/sdm/libs/core/resource_default.cpp
+++ b/sdm/libs/core/resource_default.cpp
@@ -546,7 +546,8 @@
   }
 
   bool ubwc_tiled = IsUBWCFormat(layer.input_buffer->format);
-  error = ValidateScaling(src_rect, dst_rect, false, ubwc_tiled);
+  error = ValidateScaling(src_rect, dst_rect, false /*rotated90 */, ubwc_tiled,
+                          false /* use_rotator_downscale */);
   if (error != kErrorNone) {
     return error;
   }
@@ -705,7 +706,8 @@
     return error;
   }
 
-  error = ValidateScaling(src_rect, dst_rect, false, ubwc_tiled);
+  error = ValidateScaling(src_rect, dst_rect, false /* rotated90 */, ubwc_tiled,
+                          false /* use_rotator_downscale */);
   if (error != kErrorNone) {
     return error;
   }
@@ -714,7 +716,8 @@
 }
 
 DisplayError ResourceDefault::ValidateScaling(const LayerRect &crop, const LayerRect &dst,
-                                         bool rotate90, bool ubwc_tiled) {
+                                              bool rotate90, bool ubwc_tiled,
+                                              bool use_rotator_downscale) {
   DisplayError error = kErrorNone;
 
   float scale_x = 1.0f;
diff --git a/sdm/libs/core/resource_default.h b/sdm/libs/core/resource_default.h
index a4549b0..5c81332 100644
--- a/sdm/libs/core/resource_default.h
+++ b/sdm/libs/core/resource_default.h
@@ -50,7 +50,7 @@
   virtual void Purge(Handle display_ctx);
   virtual DisplayError SetMaxMixerStages(Handle display_ctx, uint32_t max_mixer_stages);
   virtual DisplayError ValidateScaling(const LayerRect &crop, const LayerRect &dst,
-                                       bool rotate90, bool ubwc_tiled);
+                                       bool rotate90, bool ubwc_tiled, bool use_rotator_downscale);
   DisplayError ValidateCursorConfig(Handle display_ctx, const Layer& layer, bool is_top);
   DisplayError ValidateCursorPosition(Handle display_ctx, HWLayers *hw_layers, int x, int y);
 
@@ -84,7 +84,7 @@
 
   // todo: retrieve all these from kernel
   enum {
-    kMaxDecimationDownScaleRatio = 8,
+    kMaxDecimationDownScaleRatio = 16,
   };
 
   struct SourcePipe {