sdm: Add support for destination scalar in drm.

1) Add DRMOps for destination scalar.
2) Pass destination scalar data to DRM driver.
3) Add Scalar LUTs to CRTC during Init()
4) Disable PU when DS is enabled.

Change-Id: I5450b02c16e6d162fb0069c924dc2c9877834093
Crs-fixed: 2063894
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 53a709e..a69ae1a 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -209,7 +209,14 @@
    * Arg: uint32_t - CRTC ID
    *      uint32_t - rot_clk
    */
-  CRTC_SET_ROT_CLK,  /*
+  CRTC_SET_ROT_CLK,
+  /*
+   * Op: Sets destination scalar data
+   * Arg: uint32_t - CRTC ID
+   *      uint64_t - Pointer to destination scalar data
+   */
+  CRTC_SET_DEST_SCALER_CONFIG,
+  /*
    * Op: Returns release fence for this frame. Should be called after Commit() on
    * DRMAtomicReqInterface.
    * Arg: uint32_t - CRTC ID
@@ -374,6 +381,10 @@
   uint64_t min_core_ib;
   uint64_t min_llcc_ib;
   uint64_t min_dram_ib;
+  uint32_t dest_scaler_count = 0;
+  uint32_t max_dest_scaler_input_width = 0;
+  uint32_t max_dest_scaler_output_width = 0;
+  uint32_t max_dest_scale_up = 1;
 };
 
 enum struct DRMPlaneType {
@@ -603,7 +614,7 @@
    * Will query post propcessing feature info of a CRTC.
    * [output]: DRMPPFeatureInfo: CRTC post processing feature info
    */
-  virtual void GetCrtcPPInfo(uint32_t crtc_id, DRMPPFeatureInfo &info) = 0;
+  virtual void GetCrtcPPInfo(uint32_t crtc_id, DRMPPFeatureInfo *info) = 0;
   /*
    * Register a logical display to receive a token.
    * Each display pipeline in DRM is identified by its CRTC and Connector(s).