sdm: Add support for Qseed3Lite

1. Add version check for Qseed3Lite.
2. Program dir_weight.

Change-Id: Ibcde75c1bb7992af2b7fe8f4b496ffc5fec18e54
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index f9bd8f4..076e0a6 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -431,6 +431,7 @@
   V1,
   V2,
   V3,
+  V3LITE,
 };
 
 /* QSEED3 Step version */
@@ -438,6 +439,8 @@
   V2,
   V3,
   V4,
+  V3LITE_V4,
+  V3LITE_V5,
 };
 
 enum struct SmartDMARevision {
diff --git a/sdm/include/private/hw_info_types.h b/sdm/include/private/hw_info_types.h
index 220bbf3..eb60186 100644
--- a/sdm/include/private/hw_info_types.h
+++ b/sdm/include/private/hw_info_types.h
@@ -211,6 +211,8 @@
   kQseed3v2,
   kQseed3v3,
   kQseed3v4,
+  kQseed3litev4,
+  kQseed3litev5,
 };
 
 struct HWDestScalarInfo {
@@ -504,6 +506,7 @@
   } enable;
   uint32_t dst_width = 0;
   uint32_t dst_height = 0;
+  uint32_t dir_weight = 0;
   HWPlane plane[MAX_PLANES] {};
   // scale_v2_data fields
   ScalingFilterConfig y_rgb_filter_cfg = kFilterEdgeDirected;
diff --git a/sdm/libs/core/drm/hw_info_drm.cpp b/sdm/libs/core/drm/hw_info_drm.cpp
index 2305088..09903b9 100644
--- a/sdm/libs/core/drm/hw_info_drm.cpp
+++ b/sdm/libs/core/drm/hw_info_drm.cpp
@@ -96,6 +96,12 @@
     case sde_drm::QSEEDStepVersion::V4:
       sdm_version = kQseed3v4;
       break;
+    case sde_drm::QSEEDStepVersion::V3LITE_V4:
+      sdm_version = kQseed3litev4;
+      break;
+    case sde_drm::QSEEDStepVersion::V3LITE_V5:
+      sdm_version = kQseed3litev5;
+      break;
   }
   return sdm_version;
 }
@@ -272,7 +278,7 @@
   drm_mgr_intf_->GetCrtcInfo(0 /* system_info */, &info);
   hw_resource->has_hdr = info.has_hdr;
   hw_resource->is_src_split = info.has_src_split;
-  hw_resource->has_qseed3 = (info.qseed_version == sde_drm::QSEEDVersion::V3);
+  hw_resource->has_qseed3 = (info.qseed_version >= sde_drm::QSEEDVersion::V3);
   hw_resource->num_blending_stages = info.max_blend_stages;
   hw_resource->num_solidfill_stages = info.max_solidfill_stages;
   hw_resource->smart_dma_rev = (info.smart_dma_rev == sde_drm::SmartDMARevision::V2p5) ?
diff --git a/sdm/libs/core/drm/hw_scale_drm.cpp b/sdm/libs/core/drm/hw_scale_drm.cpp
index b2f6d3b..03e8067 100644
--- a/sdm/libs/core/drm/hw_scale_drm.cpp
+++ b/sdm/libs/core/drm/hw_scale_drm.cpp
@@ -123,6 +123,7 @@
   scaler->uv_filter_cfg = GetScalingFilter(scale_data.uv_filter_cfg);
   scaler->alpha_filter_cfg = GetAlphaInterpolation(scale_data.alpha_filter_cfg);
   scaler->blend_cfg = scale_data.blend_cfg;
+  scaler->dir_weight = scale_data.dir_weight;
 
   scaler->lut_flag = (scale_data.lut_flag.lut_swap ? SCALER_LUT_SWAP : 0) |
                      (scale_data.lut_flag.lut_dir_wr ? SCALER_LUT_DIR_WR : 0) |