diff options
Diffstat (limited to 'libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp')
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp | 18 |
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; } } |