Revert "libhwc2.1: LHBM On Constraint"
This reverts commit 46ed0bcd8cdc7f31b1016ccc8f5861d0f660e07e.
Bug: 191426007
Reason for revert: regression issue LHBM not work
Change-Id: I5225b3db371fb551ad060b1a4dde30af429925bc
(cherry picked from commit 3cda218437a9f84017686078fb4327b3665e3914)
diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h
index ae5fd30..98532ab 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.h
+++ b/libhwc2.1/libdevice/ExynosDisplay.h
@@ -1163,9 +1163,6 @@
mReqLhbm = on;
mDevice->invalidate();
}
- void clearReqLhbm() { mReqLhbm = false; }
- void setMinDisplayVsyncPeriod(uint32_t period) { mMinDisplayVsyncPeriod = period; }
- uint32_t getMinDisplayVsyncPeriod(void) const { return mMinDisplayVsyncPeriod; }
private:
bool skipStaticLayerChanged(ExynosCompositionInfo& compositionInfo);
@@ -1192,9 +1189,6 @@
// request lhbm state
bool mReqLhbm = false;
- // vsync period of max refresh rate
- uint32_t mMinDisplayVsyncPeriod;
-
/* Display hint to notify power hal */
class PowerHalHintWorker : public Worker {
public:
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index b11f4f8..01b77af 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -702,13 +702,6 @@
// Dots per 1000 inches
mExynosDisplay->mYdpi = mm_height ? (mDozeDrmMode.v_display() * kUmPerInch) / mm_height : -1;
- // force to turn off lhbm
- if (mBrightnessCtrl.LhbmOn.get() == true) {
- mExynosDisplay->clearReqLhbm();
- mExynosDisplay->updateBrightnessState();
- mLhbmForceUpdated = true;
- }
-
return setActiveDrmMode(mDozeDrmMode);
}
@@ -801,7 +794,6 @@
/* key: (width<<32 | height) */
std::map<uint64_t, uint32_t> groupIds;
uint32_t groupId = 0;
- uint32_t min_vsync_period = UINT_MAX;
for (const DrmMode &mode : mDrmConnector->modes()) {
displayConfigs_t configs;
@@ -821,14 +813,11 @@
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 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->setMinDisplayVsyncPeriod(min_vsync_period);
}
uint32_t num_modes = static_cast<uint32_t>(mDrmConnector->modes().size());
@@ -1047,18 +1036,6 @@
DrmModeAtomicReq drmReq(this);
- if (mLhbmForceUpdated) {
- if (mBrightnessCtrl.LhbmOn.is_dirty()) {
- if ((ret = drmReq.atomicAddProperty(mDrmConnector->id(), mDrmConnector->lhbm_on(),
- mBrightnessCtrl.LhbmOn.get())) < 0) {
- HWC_LOGE(mExynosDisplay, "%s: Fail to set lhbm_on property", __func__);
- }
- mBrightnessCtrl.LhbmOn.clear_dirty();
- mExynosDisplay->notifyLhbmState(mBrightnessCtrl.LhbmOn.get());
- }
- mLhbmForceUpdated = false;
- }
-
if ((ret = setDisplayMode(drmReq, modeBlob)) != NO_ERROR) {
drmReq.addOldBlob(modeBlob);
HWC_LOGE(mExynosDisplay, "%s: Fail to apply display mode",
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.h
index 8356238..f1f85ea 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.h
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.h
@@ -483,7 +483,6 @@
static constexpr int32_t kHbmDimmingTimeUs = 5000000;
FramebufferManager mFBManager;
- bool mLhbmForceUpdated = false;
/*
* BrightnessDimmingUsage:
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
index f911206..c69388c 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
@@ -441,28 +441,7 @@
return HWC2_ERROR_NONE;
}
-bool ExynosPrimaryDisplay::isLhbmSwitchAvailable(bool enabled) {
- Mutex::Autolock lock(mDisplayMutex);
- if ((mPowerModeState != HWC2_POWER_MODE_ON) && enabled) {
- ALOGW("skip LHBM, not ON state ");
- return false;
- }
-
- if (mVsyncPeriod != getMinDisplayVsyncPeriod()) {
- if (enabled) {
- ALOGW("skip LHBM on, not max refresh rate");
- return false;
- }
- ALOGW("calling setLhbmState in refresh rate=%d", mVsyncPeriod);
- }
- return true;
-}
-
int32_t ExynosPrimaryDisplay::setLhbmState(bool enabled) {
- if (mLhbmOn == enabled) return NO_ERROR;
-
- if (!isLhbmSwitchAvailable(enabled)) return INVALID_OPERATION;
-
requestLhbm(enabled);
ALOGI("setLhbmState =%d", enabled);
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h
index f61b492..c49ae5e 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h
@@ -85,7 +85,6 @@
"/sys/class/backlight/panel0-backlight/local_hbm_mode";
std::mutex lhbm_mutex_;
std::condition_variable lhbm_cond_;
- bool isLhbmSwitchAvailable(bool enabled);
FILE* mWakeupDispFd;
static constexpr const char* kWakeupDispFilePath =
diff --git a/libhwc2.1/pixel-display.cpp b/libhwc2.1/pixel-display.cpp
index 617718d..b6d0eb3 100644
--- a/libhwc2.1/pixel-display.cpp
+++ b/libhwc2.1/pixel-display.cpp
@@ -122,8 +122,6 @@
return ndk::ScopedAStatus::ok();
else if (ret == TIMED_OUT)
return ndk::ScopedAStatus::fromExceptionCode(STATUS_TIMED_OUT);
- else if (ret == INVALID_OPERATION)
- return ndk::ScopedAStatus::fromExceptionCode(STATUS_INVALID_OPERATION);
}
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}