Merge "sdm: drm: Read Panel HDR caps"
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 51cb672..a566399 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 {
@@ -412,6 +413,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 0c47b78..8432f9b 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -455,6 +455,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;
@@ -471,8 +482,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;