summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
diff options
context:
space:
mode:
authorChris Lu <luchris@google.com>2022-06-01 04:11:35 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-06-01 04:11:35 +0000
commit59ebfed89197d94cfac90708142b29f8c8e77eac (patch)
tree566da10ecb31e8dae1cfbb6f2c2b6a32fca2ad0f /libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
parent5d6c1de12abff0d6f1b18d4bef8e51bbeb37d45d (diff)
parentb9f0ab612686bb322f978da70486f6f3ce1d62f2 (diff)
libhwc2.1: wait for peak refresh rate before enabling LHBM am: b9f0ab6126
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18655759 Change-Id: Ied0bda8f0f8969878e30036e83043b60cc726fcc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index 3ccfaf4..cda2321 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -879,6 +879,7 @@ int32_t ExynosDisplayDrmInterface::getDisplayConfigs(
/* key: (width<<32 | height) */
std::map<uint64_t, uint32_t> groupIds;
uint32_t groupId = 0;
+ uint32_t min_vsync_period = UINT_MAX;
for (const DrmMode &mode : mDrmConnector->modes()) {
displayConfigs_t configs;
@@ -899,11 +900,14 @@ int32_t ExynosDisplayDrmInterface::getDisplayConfigs(
configs.Xdpi = mm_width ? (mode.h_display() * kUmPerInch) / mm_width : -1;
// Dots per 1000 inches
configs.Ydpi = mm_height ? (mode.v_display() * kUmPerInch) / mm_height : -1;
+ // find min vsync period
+ if (configs.vsyncPeriod <= min_vsync_period) min_vsync_period = configs.vsyncPeriod;
mExynosDisplay->mDisplayConfigs.insert(std::make_pair(mode.id(), configs));
ALOGD("config group(%d), w(%d), h(%d), vsync(%d), xdpi(%d), ydpi(%d)",
configs.groupId, configs.width, configs.height,
configs.vsyncPeriod, configs.Xdpi, configs.Ydpi);
}
+ mExynosDisplay->setMinDisplayVsyncPeriod(min_vsync_period);
}
uint32_t num_modes = static_cast<uint32_t>(mDrmConnector->modes().size());