diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-07-24 01:06:37 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-07-24 01:06:37 +0000 |
commit | b9a973cf7f58365a60f9935373a6de1b02beac48 (patch) | |
tree | 2ff6fc3597301197fff3bd96131e2399c774626f | |
parent | c60d17877791a2a5c0780d09874d83b3ceecc4e6 (diff) | |
parent | 9939402e347332b4d61cb20b55bdacd25c393ed6 (diff) | |
download | gs101-b9a973cf7f58365a60f9935373a6de1b02beac48.tar.gz |
Snap for 7578560 from 9939402e347332b4d61cb20b55bdacd25c393ed6 to sc-d2-release
Change-Id: If9e3dbc164374bf99f52db92f04eaac43454b1a4
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp | 23 | ||||
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h | 4 |
2 files changed, 12 insertions, 15 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp index fee339a..4f3ea81 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp @@ -984,30 +984,27 @@ int32_t ExynosPrimaryDisplayModule::setAtcStDimming(uint32_t value) { uint32_t step = mAtcStTarget > strength ? mAtcStUpStep : mAtcStDownStep; int diff = value - strength; - uint32_t steps = std::abs(diff) / step; - int remainder = std::abs(diff) % step; - if (remainder > 0) steps = steps + 1; - mAtcStStepLeft = steps; - ALOGI("setup atc st dimming=%d, steps=%d, step=%d", value, steps, step); + uint32_t count = (std::abs(diff) + step - 1) / step; + mAtcStStepCount = count; + ALOGI("setup atc st dimming=%d, count=%d, step=%d", value, count, step); } - if (mAtcStStepLeft == 0 && !mAtcStrength.is_dirty()) return NO_ERROR; + if (mAtcStStepCount == 0 && !mAtcStrength.is_dirty()) return NO_ERROR; - if (strength < mAtcStTarget) { + if ((strength + mAtcStUpStep) < mAtcStTarget) { strength = strength + mAtcStUpStep; - if (strength > mAtcStTarget) strength = mAtcStTarget; - } else if (strength > mAtcStTarget) { + } else if (strength > (mAtcStTarget + mAtcStDownStep)) { strength = strength - mAtcStDownStep; - if (strength < mAtcStTarget) strength = mAtcStTarget; - } else + } else { strength = mAtcStTarget; + } if (setAtcStrength(strength) != NO_ERROR) { ALOGE("Failed to set atc st"); return -EPERM; } - if (mAtcStStepLeft > 0) mAtcStStepLeft--; + if (mAtcStStepCount > 0) mAtcStStepCount--; return NO_ERROR; } @@ -1028,7 +1025,7 @@ void ExynosPrimaryDisplayModule::checkAtcAnimation() { return; } - if (mPendingAtcOff && mAtcStStepLeft == 0) { + if (mPendingAtcOff && mAtcStStepCount == 0) { if (setAtcEnable(false) != NO_ERROR) { ALOGE("Failed to set atc enable to off"); return; diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h index 25b0289..1b80d2c 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h @@ -260,7 +260,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay { int32_t setAtcEnable(bool enable); void checkAtcAnimation(); bool isInAtcAnimation() { - if (mAtcStStepLeft > 0) + if (mAtcStStepCount > 0) return true; else return false; @@ -276,7 +276,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay { CtrlValue<uint32_t> mAtcStrength; CtrlValue<uint32_t> mAtcEnable; std::unordered_map<std::string, CtrlValue<int32_t>> mAtcSubSetting; - uint32_t mAtcStStepLeft = 0; + uint32_t mAtcStStepCount = 0; uint32_t mAtcStTarget = 0; uint32_t mAtcStUpStep; uint32_t mAtcStDownStep; |