Merge "sdm: drm: Expand drm topology enum for dsc"
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 6e3b005..866ade6 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -328,11 +328,15 @@
typedef std::vector<std::pair<uint32_t, DRMPlaneTypeInfo>> DRMPlanesInfo;
enum struct DRMTopology {
- UNKNOWN, // To be compat with driver defs in sde_kms.h
+ UNKNOWN, // To be compat with driver defs in sde_rm.h
SINGLE_LM,
+ SINGLE_LM_DSC,
DUAL_LM,
- PPSPLIT,
+ DUAL_LM_DSC,
DUAL_LM_MERGE,
+ DUAL_LM_MERGE_DSC,
+ DUAL_LM_DSCMERGE,
+ PPSPLIT,
};
enum struct DRMPanelMode {
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index 76df517..839eaed 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -415,7 +415,9 @@
display_attributes_.h_total = mode.htotal;
uint32_t h_blanking = mode.htotal - mode.hdisplay;
display_attributes_.is_device_split =
- (topology == DRMTopology::DUAL_LM || topology == DRMTopology::DUAL_LM_MERGE);
+ (topology == DRMTopology::DUAL_LM || topology == DRMTopology::DUAL_LM_MERGE ||
+ topology == DRMTopology::DUAL_LM_MERGE_DSC || topology == DRMTopology::DUAL_LM_DSC ||
+ topology == DRMTopology::DUAL_LM_DSCMERGE);
display_attributes_.h_total += display_attributes_.is_device_split ? h_blanking : 0;
display_attributes_.x_dpi = (FLOAT(mode.hdisplay) * 25.4f) / FLOAT(mm_width);