diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h index 6e3b0053..866ade6f 100644 --- a/libdrmutils/drm_interface.h +++ b/libdrmutils/drm_interface.h @@ -328,11 +328,15 @@ struct DRMPlaneTypeInfo { typedef std::vector> 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 76df517f..839eaedf 100644 --- a/sdm/libs/core/drm/hw_device_drm.cpp +++ b/sdm/libs/core/drm/hw_device_drm.cpp @@ -415,7 +415,9 @@ DisplayError HWDeviceDRM::PopulateDisplayAttributes() { 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);