summaryrefslogtreecommitdiff
path: root/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp')
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
index b82de6b..607463a 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
@@ -538,16 +538,16 @@ int32_t ExynosPrimaryDisplay::setLhbmState(bool enabled) {
}
}
- float peak_rr = getPeakRefreshRate();
- if (enabled && peak_rr > 0) {
+ if (enabled) {
ATRACE_NAME("wait for peak refresh rate");
- bool succ = mBrightnessController->checkSysfsStatus(
- BrightnessController::kRefreshrateFileNode,
- {std::to_string(std::lround(peak_rr))},
- ms2ns(kLhbmWaitForPeakRefreshRateMs));
- if (!succ) {
- ALOGE("%s: check refresh rate sysfs node failed", __func__);
- return -EINVAL;
+ std::unique_lock<std::mutex> lock(mPeakRefreshRateMutex);
+ mNotifyPeakRefreshRate = true;
+ if (!mPeakRefreshRateCondition.wait_for(lock,
+ std::chrono::milliseconds(
+ kLhbmWaitForPeakRefreshRateMs),
+ [this]() { return isCurrentPeakRefreshRate(); })) {
+ ALOGW("setLhbmState(on) wait for peak refresh rate timeout !");
+ return TIMED_OUT;
}
}