summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadmanabhan Komanduru <pkomandu@codeaurora.org>2020-09-23 18:31:50 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2020-09-25 05:00:29 -0700
commit6847a0d8eab22f7a65c22e0e80e2f33296fad07c (patch)
treef99540a5ab7d7a24cd32ab8d10649d3c6346dcb0
parentfdda88482dfae7aaa98a8f93bc8dc64ffc7c1f2e (diff)
sdm: add GetConfig method for built-in displays
Change-Id: Ibc098be42d162dc7c1a77f829ee7efbb167f2a1e
-rw-r--r--sdm/libs/core/display_base.h2
-rw-r--r--sdm/libs/core/display_builtin.cpp19
-rw-r--r--sdm/libs/core/display_builtin.h1
3 files changed, 21 insertions, 1 deletions
diff --git a/sdm/libs/core/display_base.h b/sdm/libs/core/display_base.h
index d18d4a4a..95072483 100644
--- a/sdm/libs/core/display_base.h
+++ b/sdm/libs/core/display_base.h
@@ -63,7 +63,7 @@ class DisplayBase : public DisplayInterface {
virtual DisplayError GetDisplayState(DisplayState *state);
virtual DisplayError GetNumVariableInfoConfigs(uint32_t *count);
virtual DisplayError GetConfig(uint32_t index, DisplayConfigVariableInfo *variable_info);
- virtual DisplayError GetConfig(DisplayConfigFixedInfo *variable_info);
+ virtual DisplayError GetConfig(DisplayConfigFixedInfo *fixed_info);
virtual DisplayError GetActiveConfig(uint32_t *index);
virtual DisplayError GetVSyncState(bool *enabled);
virtual DisplayError SetDisplayState(DisplayState state, bool teardown,
diff --git a/sdm/libs/core/display_builtin.cpp b/sdm/libs/core/display_builtin.cpp
index 2bd90042..4cdf9d83 100644
--- a/sdm/libs/core/display_builtin.cpp
+++ b/sdm/libs/core/display_builtin.cpp
@@ -1001,4 +1001,23 @@ void DisplayBuiltIn::GetFpsConfig(HWDisplayAttributes *display_attr, HWPanelInfo
panel_info->transfer_time_us = hw_panel_info_.transfer_time_us;
}
+DisplayError DisplayBuiltIn::GetConfig(DisplayConfigFixedInfo *fixed_info) {
+ lock_guard<recursive_mutex> obj(recursive_mutex_);
+ fixed_info->is_cmdmode = (hw_panel_info_.mode == kModeCommand);
+
+ HWResourceInfo hw_resource_info = HWResourceInfo();
+ hw_info_intf_->GetHWResourceInfo(&hw_resource_info);
+
+ fixed_info->hdr_supported = hw_resource_info.has_hdr;
+ // Populate luminance values only if hdr will be supported on that display
+ fixed_info->max_luminance = fixed_info->hdr_supported ? hw_panel_info_.peak_luminance: 0;
+ fixed_info->average_luminance = fixed_info->hdr_supported ? hw_panel_info_.average_luminance : 0;
+ fixed_info->min_luminance = fixed_info->hdr_supported ? hw_panel_info_.blackness_level: 0;
+ fixed_info->hdr_eotf = hw_panel_info_.hdr_eotf;
+ fixed_info->hdr_metadata_type_one = hw_panel_info_.hdr_metadata_type_one;
+ fixed_info->partial_update = hw_panel_info_.partial_update;
+
+ return kErrorNone;
+}
+
} // namespace sdm
diff --git a/sdm/libs/core/display_builtin.h b/sdm/libs/core/display_builtin.h
index 6da7a87f..6132a939 100644
--- a/sdm/libs/core/display_builtin.h
+++ b/sdm/libs/core/display_builtin.h
@@ -120,6 +120,7 @@ class DisplayBuiltIn : public DisplayBase, HWEventHandler, DppsPropIntf {
virtual DisplayError SetDynamicDSIClock(uint64_t bit_clk_rate);
virtual DisplayError GetDynamicDSIClock(uint64_t *bit_clk_rate);
virtual DisplayError GetSupportedDSIClock(std::vector<uint64_t> *bitclk_rates);
+ virtual DisplayError GetConfig(DisplayConfigFixedInfo *fixed_info);
// Implement the HWEventHandlers
virtual DisplayError VSync(int64_t timestamp);