diff options
author | Midas Chien <midaschieh@google.com> | 2023-06-16 01:35:25 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-06-16 01:35:25 +0000 |
commit | e08d41256036e40d1ab3f5aa64f0da67a306479e (patch) | |
tree | 9fa4bbbbef402f06a67371d033f73df5b53a6ce8 | |
parent | 9bccf474c2a0762f5c73d9acf95698754fe0ae07 (diff) | |
parent | c8122475f806e0f9c1e343172a002c172417def2 (diff) | |
download | zuma-e08d41256036e40d1ab3f5aa64f0da67a306479e.tar.gz |
libhwc2.1: get active operation rate from kerenl when power on am: c8122475f8
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/zuma/+/23659932
Change-Id: I6e7c30f7d4146ee300e7b7ba3cb6641dbdcd0c63
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp index f036c45..6917f16 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#define ATRACE_TAG (ATRACE_TAG_GRAPHICS | ATRACE_TAG_HAL) + #include "ExynosPrimaryDisplayModule.h" #include <cutils/properties.h> @@ -56,10 +58,13 @@ int32_t ExynosPrimaryDisplayModule::validateWinConfigData() int32_t ExynosPrimaryDisplayModule::OperationRateManager::getOperationRate() { std::string op_rate_str; + ATRACE_CALL(); if (mDisplayPowerMode == HWC2_POWER_MODE_DOZE || mDisplayPowerMode == HWC2_POWER_MODE_DOZE_SUSPEND) { return LP_OP_RATE; - } else if (readLineFromFile(mSysfsPath, op_rate_str, '\n') != OK) { + } + + if (readLineFromFile(mSysfsPath, op_rate_str, '\n') != OK) { OP_MANAGER_LOGE("failed to read %s", mSysfsPath.c_str()); return 0; } @@ -69,6 +74,7 @@ int32_t ExynosPrimaryDisplayModule::OperationRateManager::getOperationRate() { int32_t ExynosPrimaryDisplayModule::OperationRateManager::setOperationRate(const int32_t rate) { if (!mDisplayActiveOperationRate || mDisplayActiveOperationRate == rate) return NO_ERROR; + ATRACE_CALL(); int32_t ret = writeIntToFile(mSysfsPath.c_str(), rate); if (ret == NO_ERROR) { mDisplayActiveOperationRate = rate; @@ -174,14 +180,12 @@ int32_t ExynosPrimaryDisplayModule::OperationRateManager::updateOperationRateLoc desiredOpRate = mDisplayHsOperationRate; } - if (mDisplayPowerMode == HWC2_POWER_MODE_ON) { - mDisplayActiveOperationRate = getOperationRate(); - } else if (mDisplayPowerMode == HWC2_POWER_MODE_DOZE || - mDisplayPowerMode == HWC2_POWER_MODE_DOZE_SUSPEND) { + if (mDisplayPowerMode == HWC2_POWER_MODE_DOZE || + mDisplayPowerMode == HWC2_POWER_MODE_DOZE_SUSPEND) { mDisplayActiveOperationRate = LP_OP_RATE; desiredOpRate = mDisplayActiveOperationRate; effectiveOpRate = desiredOpRate; - } else { + } else if (mDisplayPowerMode != HWC2_POWER_MODE_ON) { return ret; } @@ -191,6 +195,9 @@ int32_t ExynosPrimaryDisplayModule::OperationRateManager::updateOperationRateLoc (curRefreshRate <= mDisplayHsOperationRate)) effectiveOpRate = mDisplayHsOperationRate; } else if (cond == DispOpCondition::PANEL_SET_POWER) { + if (mDisplayPowerMode == HWC2_POWER_MODE_ON) { + mDisplayActiveOperationRate = getOperationRate(); + } effectiveOpRate = desiredOpRate; } else if (cond == DispOpCondition::SET_DBV) { // TODO: tune brightness delta for different brightness curve and values |