sdm: Populate/Compute transfer time to compute BW/Clock
Populate transfer time in micro seconds for command mode panel to
compute BW/Clock for current frame
Change-Id: Id79c470448edc9cb361f34e0c7366be1d31d5c67
CRs-Fixed: 2078600
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 35285ee..6e07445 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -422,6 +422,7 @@
bool roi_merge;
DRMRotation panel_orientation;
drm_panel_hdr_properties panel_hdr_prop;
+ uint32_t transfer_time_us;
};
/* Identifier token for a display */
diff --git a/sdm/include/private/hw_info_types.h b/sdm/include/private/hw_info_types.h
index 752d0c4..763e68d 100644
--- a/sdm/include/private/hw_info_types.h
+++ b/sdm/include/private/hw_info_types.h
@@ -274,6 +274,7 @@
uint32_t blackness_level = 0; // Panel's blackness level
HWColorPrimaries primaries = {}; // WRGB color primaries
HWPanelOrientation panel_orientation = {}; // Panel Orientation
+ uint32_t transfer_time_us = 0; // transfer time in micro seconds to panel's active region
bool operator !=(const HWPanelInfo &panel_info) {
return ((port != panel_info.port) || (mode != panel_info.mode) ||
@@ -289,7 +290,8 @@
(max_fps != panel_info.max_fps) || (is_primary_panel != panel_info.is_primary_panel) ||
(split_info != panel_info.split_info) || (s3d_mode != panel_info.s3d_mode) ||
(left_roi_count != panel_info.left_roi_count) ||
- (right_roi_count != panel_info.right_roi_count));
+ (right_roi_count != panel_info.right_roi_count) ||
+ (transfer_time_us != panel_info.transfer_time_us));
}
bool operator ==(const HWPanelInfo &panel_info) {
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index 1ed9042..cd036a9 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -494,6 +494,7 @@
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];
+ hw_panel_info_.transfer_time_us = connector_info_.transfer_time_us;
// no supprt for 90 rotation only flips or 180 supported
hw_panel_info_.panel_orientation.rotation = 0;
@@ -519,6 +520,7 @@
DLOGI("FPS: min = %d, max =%d", hw_panel_info_.min_fps, hw_panel_info_.max_fps);
DLOGI("Left Split = %d, Right Split = %d", hw_panel_info_.split_info.left_split,
hw_panel_info_.split_info.right_split);
+ DLOGI("Panel Transfer time = %d us", hw_panel_info_.transfer_time_us);
}
void HWDeviceDRM::GetHWDisplayPortAndMode() {