sdm: drm: Read Panel HDR caps

Read Panel HDR capabilities from DRMConnectorInfo.

CRs-Fixed: 2073357
Change-Id: I48346e116f147bc3c32967e68e7e4a9e514de2c6
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 97c8ad8..6f3631e 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -37,6 +37,7 @@
 
 #include "xf86drm.h"
 #include "xf86drmMode.h"
+#include <drm/msm_drm.h>
 
 namespace sde_drm {
 
@@ -400,6 +401,7 @@
   int hmin;
   bool roi_merge;
   DRMRotation panel_orientation;
+  drm_panel_hdr_properties panel_hdr_prop;
 };
 
 /* Identifier token for a display */
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index 9e99361..0e7946d 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -453,6 +453,17 @@
   hw_panel_info_.max_fps = 60;
   hw_panel_info_.is_primary_panel = connector_info_.is_primary;
   hw_panel_info_.is_pluggable = 0;
+  hw_panel_info_.hdr_enabled = connector_info_.panel_hdr_prop.hdr_enabled;
+  hw_panel_info_.peak_luminance = connector_info_.panel_hdr_prop.peak_brightness;
+  hw_panel_info_.blackness_level = connector_info_.panel_hdr_prop.blackness_level;
+  hw_panel_info_.primaries.white_point[0] = connector_info_.panel_hdr_prop.display_primaries[0];
+  hw_panel_info_.primaries.white_point[1] = connector_info_.panel_hdr_prop.display_primaries[1];
+  hw_panel_info_.primaries.red[0] = connector_info_.panel_hdr_prop.display_primaries[2];
+  hw_panel_info_.primaries.red[1] = connector_info_.panel_hdr_prop.display_primaries[3];
+  hw_panel_info_.primaries.green[0] = connector_info_.panel_hdr_prop.display_primaries[4];
+  hw_panel_info_.primaries.green[1] = connector_info_.panel_hdr_prop.display_primaries[5];
+  hw_panel_info_.primaries.blue[0] = connector_info_.panel_hdr_prop.display_primaries[6];
+  hw_panel_info_.primaries.blue[1] = connector_info_.panel_hdr_prop.display_primaries[7];
 
   // no supprt for 90 rotation only flips or 180 supported
   hw_panel_info_.panel_orientation.rotation = 0;
@@ -469,8 +480,8 @@
   DLOGI("%s, Panel Interface = %s, Panel Mode = %s, Is Primary = %d", device_name_,
         interface_str_.c_str(), hw_panel_info_.mode == kModeVideo ? "Video" : "Command",
         hw_panel_info_.is_primary_panel);
-  DLOGI("Partial Update = %d, Dynamic FPS = %d", hw_panel_info_.partial_update,
-        hw_panel_info_.dynamic_fps);
+  DLOGI("Partial Update = %d, Dynamic FPS = %d, HDR Panel = %d", hw_panel_info_.partial_update,
+        hw_panel_info_.dynamic_fps, hw_panel_info_.hdr_enabled);
   DLOGI("Align: left = %d, width = %d, top = %d, height = %d", hw_panel_info_.left_align,
         hw_panel_info_.width_align, hw_panel_info_.top_align, hw_panel_info_.height_align);
   DLOGI("ROI: min_width = %d, min_height = %d, need_merge = %d", hw_panel_info_.min_roi_width,
diff --git a/sdm/libs/core/drm/hw_info_drm.cpp b/sdm/libs/core/drm/hw_info_drm.cpp
index 8843924..bf7a5ab 100644
--- a/sdm/libs/core/drm/hw_info_drm.cpp
+++ b/sdm/libs/core/drm/hw_info_drm.cpp
@@ -174,6 +174,7 @@
   hw_resource->has_dyn_bw_support = false;
   hw_resource->has_qseed3 = false;
   hw_resource->has_concurrent_writeback = false;
+  hw_resource->has_hdr = true;
 
   // TODO(user): Deprecate
   hw_resource->hw_version = kHWMdssVersion5;