summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-02-03 19:52:09 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-02-03 19:52:09 +0000
commit4b4a1c9381476883fe8000d5f70cac1a94e52ad5 (patch)
treee1d31eba8f6b846732c1b8fae5561d033e49e277 /libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
parent6169f5e4cf2be159576fc19184dc047c22b0e2ae (diff)
parent2f037bf60d3db37cd29a3cc25777a3ef7ad3ce64 (diff)
Merge cherrypicks of ['googleplex-android-review.googlesource.com/21266804', 'googleplex-android-review.googlesource.com/21266803'] into sparse-9558421-L47400000958444034.
SPARSE_CHANGE: I42fb9d1c1f3c814e5416209378ea38b61e901e62 SPARSE_CHANGE: Ifaaee60913ffc32e8ae9ab7acec327a968468ac7 Change-Id: Ief57303a5b89e22764af22b8eca27e26d8409f96
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index e436663..dbb11bd 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -920,12 +920,11 @@ int32_t ExynosDisplayDrmInterface::getDisplayConfigs(
/* key: (width<<32 | height) */
std::map<uint64_t, uint32_t> groupIds;
uint32_t groupId = 0;
- float peakRr = -1;
+ uint32_t min_vsync_period = UINT_MAX;
for (const DrmMode &mode : mDrmConnector->modes()) {
displayConfigs_t configs;
- float rr = mode.v_refresh();
- configs.vsyncPeriod = nsecsPerSec / rr;
+ configs.vsyncPeriod = nsecsPerSec/ mode.v_refresh();
configs.width = mode.h_display();
configs.height = mode.v_display();
uint64_t key = ((uint64_t)configs.width<<32) | configs.height;
@@ -942,15 +941,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 peak rr
- if (rr > peakRr)
- peakRr = rr;
+ // 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->setPeakRefreshRate(peakRr);
+ mExynosDisplay->setMinDisplayVsyncPeriod(min_vsync_period);
}
uint32_t num_modes = static_cast<uint32_t>(mDrmConnector->modes().size());